В настоящее время я использую следующий запрос для выполнения поиска по нескольким таблицам через INNER JOIN.Несколько внутренних соединений с различными условиями где-то
SELECT title, m2.txt1 AS teaser, inputdat, db_file.*
FROM db_item
INNER JOIN db_itemv AS m1 USING(id_item)
INNER JOIN db_itemf USING(id_item)
INNER JOIN db_itemd USING(id_item)
INNER JOIN db_itemv AS m2 USING(id_item)
WHERE type=15 AND m1.fldnr='12'
AND m1.indik='b' AND m1.txt1s='en'
AND visibility=0 AND inputdat>'2005-11-02' AND m2.fldnr='123'
GROUP BY title
ORDER BY inputdat DESC
LIMIT 0,100
Столбцы db_itemv (m1, m2) названы:
ID id_item fldnr indik txt1
Один id_item может существовать несколько строк.
Моя проблема в том, что m2.fldnr = '123' не всегда существует, и поэтому он выкидывает всю строку. Но я хочу сохранить строку и оставить столбец пустым, если он не существует в строке. Как я могу решить проблему?
использовать 'левое внешнее join' –