SQL ПРИСОЕДИНЯЙТЕСЬ, чтобы получить несколько таблиц без реляционных критериев - PullRequest
0 голосов
/ 17 апреля 2020

Как я могу использовать оператор SQL JOIN, чтобы просто получать данные из нескольких таблиц на основе предложения WHERE вместо ON критериев реляционного соответствия?

Я просто хочу получить строки из нескольких таблиц по дате:

Так что-то вроде:

SELECT * FROM table1, table2, table3 WHERE date > '2020-01-01 00:00:00'

Очевидно, что вышеприведенное не сработает, и я думаю, что оператор JOIN в порядке, но Я не уверен, как реализовать, так как я не ищу сопоставления данных между таблицами, как это было бы в случае с директивой ON.

Другими словами, я ищу замену следующие 3 утверждения ..

SELECT * FROM table1 WHERE date > '2020-01-01 00:00:00'

SELECT * FROM table2 WHERE date > '2020-01-01 00:00:00'

SELECT * FROM table3 WHERE date > '2020-01-01 00:00:00'

.. только с одним утверждением.

1 Ответ

2 голосов
/ 17 апреля 2020

JOIN не для вашей ситуации. Вместо этого вы должны использовать UNION . Единственное, что вы должны помнить, количество выбранных столбцов должно быть одинаковым для каждого выбора. Вот пример https://dev.mysql.com/doc/refman/8.0/en/union.html:

SELECT * FROM t1 UNION SELECT * FROM t2;

В вашей ситуации это будет

SELECT * FROM table1 WHERE date > '2020-01-01 00:00:00' UNION

SELECT * FROM table2 WHERE date > '2020-01-01 00:00:00' UNION

SELECT * FROM table3 WHERE date > '2020-01-01 00:00:00';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...