Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Технология мне ясна, где-то закралась мысль, что слева стоит ставить таблицу, в которой будет
а. меньше строк результата
б. от которой будет конечный WHERE плясать
Вообще смысл таков. В таблице А будет выбрана только одна строчка, в таблицах Б,В,Г,Д могут быть выбраны от 0 до n строчек. Сейчас я их через LEFT подцепила, но задумалась о правильности
Неактивен
Посылки а и б неверные. LEFT JOIN и RIGHT JOIN дадут разный результат запроса. Конечный WHERE применяется после джойна и может относиться к любой из таблиц.
Пусть есть таблицы A,B, а их строки будем обозначать a,b. Пусть JOIN выполняется по колонке id.
1) A JOIN B USING(id)
будут выбраны все пары (a, b) такие, что a.id=b.id. То есть, если в таблице B некоторой строке a1 из A соответствует 3 разных строки b1,b2,b3, то будут выбраны три пары (a1,b1), (a1,b2), (a1,b3)
2) A LEFT JOIN B USING(id)
результат будет содержать все строки из INNER JOIN плюс еще те строки из A, которым нет соответствия из B. Пусть такая строка a2. Тогда результатом будут строки (a1,b1), (a1,b2), (a1, b3), (a2, NULL).
3) A RIGHT JOIN B USING(id) то же самое, что B LEFT JOIN A USING(id)
Неактивен
Страниц: 1