Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Работа с left join (https://javascript.ru/forum/server/29849-rabota-s-left-join.html)

kilogram 14.07.2012 00:58

Вот написал запрос:
Код:

select *from name1 right join name2 on  name1.name=name2.name where name1.name is not NULL
К таблице, имя которой стоит перед джойном - name1,
присоединяется таблица, имя которой идет после джойна - name2
Далее стоит условие, согласно которому выводить. Условие такое:

Выводить, все строки из таблицы name1 с полем name, которые не присутствуют в таблице name2.

У меня такие записи в таблице name2, добавил 2 записи:


Почему в результате выводит?
Код:

1  Петя  1 Петя

oneguy 14.07.2012 01:11

Остальные строчки отсекаются этим:
Код:

where name1.name is not NULL

Маэстро 24.07.2012 19:07

Цитата:

Сообщение от kilogram (Сообщение 188627)
А как знать где левая таблица, а где правая?

:lol: Вы уж простите, но смеялся до слёз!
Если коротко, то левая таблица - слева от 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.