@kolibry1
web-developer- junior

Как реализовать select из трех таблиц попарно связанных?

Добрый день.
есть три таблицы
T1 (id_a, id_b)
T2 (id_a, ....)
T3 (id_b, ....)
Мне нужно, чтобы из T1 выводились все строки (в цикле), а из T2 и T3 - соответственно только те, что нужны.
проблема в том, что Т2 и Т3 непосредственно не связаны, и

$result = mysql_query("
SELECT * 
FROM T1 
RIGHT JOIN T2 ON 'T1.id_a'='T2.id_a' 
RIGHT JOIN T3 ON 'T1.id_b'='T3.id_b
'");

пытается мне найти пересечение всех трех таблиц одновременно, и естесственно, выводит мне пустоту.
Подскажите плз, как быть?
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
taliban
@taliban
php программист
LEFT JOIN даст правильный результат
Он вводит ВСЕ записи t1
+ t2 все которые совпадают t1 - t2 или пустоту
+ t3 все которые совпадают t1 - t3 или пустоту
Ограничить пустоту можете в WHERE t2.id is not null OR t3.id is not null

Выведет все t1 у которых есть связь либо с t2 либо с t3
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы