Выберите из нескольких таблиц с тем же условием, избегайте ошибки двусмысленности
-
11-10-2019 - |
Вопрос
Как я могу сделать что -то подобное, но избегайте ошибки column common_reference is ambiguous
? Я знаю, что это неоднозначно, я хочу выбрать из Table_one все результаты для общей_Реферы, и table_two то же самое.
SELECT * FROM table_one, table_two WHERE common_reference = 42
Это, очевидно, не сработает, так как я могу использовать подразделы для достижения того, что мне нужно?
Решение 4
Как предполагает MCHL в комментариях UNION
было решением.
Другие советы
Начните с ...
SELECT * FROM table_one, table_two WHERE table_one.common_reference = 42
... и продолжить эту дорогу:
SELECT * FROM table_one as T1, table_two as T2 WHERE T1.common_reference = 42
SELECT table_one.* FROM table_one, table_two WHERE table_one.common_reference = 42
MySQL сообщит вам об ошибке, если в вашем SQL существует неразрешимая двусмысленность.
Если вы хотите ссылаться на конкретное поле, которое также существует в другой таблице (или в той же таблице, если вы делаете соединение на себе), используйте полностью квалифицированные поля
SELECT * FROM table_one, table_two WHERE table_one.common_reference = 42
и/или псевдоним таблицы
SELECT * FROM table_one T1a, table_one T1b WHERE T1a.common_reference = 42
NB: Справедливое предупреждение, как отметил MCHL, это декартовые продукты, а не типичные соединения.