У меня есть следующий оператор, и он отлично работает, за исключением того факта, что если в 2-й таблице нет ссылочных позиций в первую таблицу, он не вернет никаких результатов.sql запрос для возврата 0 вместо NULL
Что мне нужно его вернуть count(p.match_id) AS matchcount
в 0
"SELECT c.*, count(p.match_id) AS matchcount
FROM ci_address_book c LEFT JOIN ci_matched_sanctions p
ON c.id = p.addressbook_id
GROUP BY p.addressbook_id ORDER BY c.id LIMIT ".$offset.",".$num;
частично верно ... мой оператор {"SELECT c. *, COALESCE (COUNT (p.match_id), 0) AS matchcount FROM ci_address_book c LEFT OUTER JOIN ci_matched_sanctions p ON c.id = p.addressbook_id GROUP BY p.addressbook_id ORDER BY c.id LIMIT ". $ Offset.", ". $ Num;} ... это даст мне только количество результатов назад как и в таблице сопоставленных_расходов. В моей адресной таблице есть 80 имен. если matched_sanctions не имеет никакой строки, я ничего не получаю. если он имеет 1, я получаю 1, если он имеет 2, я получаю 2 и т. д. ... – renevdkooi
может быть перефразирован мой q. У меня есть таблица с именами (адресная книга), и у меня есть таблица, содержащая совпадения. Реферируется идентификатором. так что это отношение 1-много. Я хотел бы подсчитать количество строк в сопоставленной таблице, пока получаю все результаты адресной книги. Поэтому я хотел бы видеть: addressbook_id: 1 - name - count – renevdkooi
SELECT c. *, IFNULL (p.total, 0) num FROM ci_address_book c LEFT JOIN (SELECT addressbook_id, COUNT (*) AS total FROM ci_matched_sanctions GROUP BY addressbook_id) AS p ON c.id = p.addressbook_id сделал трюк – renevdkooi