Показать все данные из одной таблицы независимо от информации из второй таблицы - PullRequest
1 голос
/ 21 ноября 2011

Ineed для отображения ALL info from T1 and T2 where T1.Catalogue = T2.Catalogue

Таблицы НЕ равны, то есть T2 необязательно содержит информацию для каждой строки T1, но мне нужно, чтобы ОБА ТАБЛИЦ в любом случае отображались.

Как мне это сделать, пожалуйста?

Это не даст того, что я хочу:

select master.*, digital_info.* from master 
INNER JOIN digital_info on master.Catalogue = digital_info.Catalogue; 

и LEFT JOIN не производят:

select master.*, digital_info.* 
from master 
LEFT JOIN digital_info 
on master.Catalogue = digital_info.Catalogue;

[[[извините, возможно, мой вопрос был довольно запутанным ... я исправил его]]]

Ответы [ 4 ]

2 голосов
/ 21 ноября 2011
SELECT * FROM T1 LEFT JOIN T2 ON T1.Catalogue = T2.Catalogue;

Ключевое слово LEFT JOIN возвращает все строки из левой таблицы (table_name1), даже если в правой таблице (table_name2) нет совпадений. (http://www.w3schools.com/sql/sql_join_left.asp)

2 голосов
/ 21 ноября 2011

Это называется левым соединением. Пример:

SELECT *
FROM T1
LEFT JOIN T2 ON T1.Catalogue = T2.Catalogue
2 голосов
/ 21 ноября 2011
SELECT * FROM 
T1 LEFT JOIN  T2
ON T1.Catalogue = T2.Catalogue

LEFT JOIN: каждый элемент в левой таблице будет отображаться в результате MySQL, даже если нет совпадения с другой таблицей, к которой он присоединяется.

0 голосов
/ 21 ноября 2011
select * from master as m
 left outer join digital_info as d on m.Catalogue = d.Catalogue 
union
select * from master as m
 right outer join digital_info as d on m.Catalogue = d.Catalogue; 

это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...