LINUX.ORG.RU

MySQL запрос


0

1

Есть запрос к MySQL вида

SELECT s.*, t.xxx, COUNT(p.id) AS num 
FROM table1 AS s
LEFT JOIN table2 AS t ON(s.column1=t.column2)
LEFT JOIN table3 AS p ON(s.column3=p.column4)

При этом в table3 может не быть удовлетворяющих условию строк, при этом в результате строка не появляется, а мне нужно, чтобы такая строка была с num=0

SELECT s.*, t.xxx, (select COUNT(p.id) from table3 AS p where s.column3=p.column4) AS num 
FROM table1 AS s
LEFT JOIN table2 AS t ON(s.column1=t.column2)
aydar ★★★★★
()

если у тебя в table3 ничего нет по условию (s.column3=p.column4), то за счет left join в выборке все равно будут соответствующие строчки, только в полях p.* будут NULLы. COUNT(p.id) их считать не будет и там будет 0, так что все по идее толжно работать.

heisenberg ★★
()
Ответ на: комментарий от heisenberg

я тоже так думал, но на самом деле запрос отработал не так.

BlackHawk
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.