Выберите из нескольких таблиц с тем же условием, избегайте ошибки двусмысленности

StackOverflow https://stackoverflow.com/questions/4490033

Вопрос

Как я могу сделать что -то подобное, но избегайте ошибки 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, это декартовые продукты, а не типичные соединения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top