Вот написал запрос:
Код:
select *from name1 right join name2 on name1.name=name2.name where name1.name is not NULL присоединяется таблица, имя которой идет после джойна - name2 Далее стоит условие, согласно которому выводить. Условие такое: Выводить, все строки из таблицы name1 с полем name, которые не присутствуют в таблице name2. У меня такие записи в таблице name2, добавил 2 записи: ![]() Почему в результате выводит? Код:
1 Петя 1 Петя |
Остальные строчки отсекаются этим:
Код:
where name1.name is not NULL |
Цитата:
Если коротко, то левая таблица - слева от JOIN, а правая - справа. Вообще у Вас неудачный пример для изучения, т.к. "вязать" таблицы по текстовым полям - это оочень плохо. Обычно таблицы связываются по числовым полям (ID). Попробуйте разобраться с присоединением к таблице Заказов текстовоых полей из таблицы (справочника) Товаров. Первая таблица содержит поля ID и TovarID. Вторая - ID и Name. Чтобы показать список заказов из первой таблицы, причем названия товаров вытащить из второй SQL-запрос будет выглядеть так: select name1.ID, name2.name from name1 left join name2 ON name1.tovarID=name2.ID |
Часовой пояс GMT +3, время: 08:54. |