当url_status表中至少有一行 u.urlid = us.urls 时,我根据需要创建了一个查询,但是如果不是这样的话,它将不起作用真正。我能做些什么来克服这个问题?
SELECT u.*, COUNT(*) AS historySize
FROM host_urls u, url_status us
WHERE u.publicationid = 1
AND us.urlid = u.urlid
GROUP BY u.urlid
答案 0 :(得分:1)
您可以使用外部联接,特别是左联接,它将为host_urls
中的每一行返回至少一个结果行,即使它在url_status
中没有相应的行。
SELECT u.*, COUNT(*) AS historySize
FROM host_urls u
LEFT JOIN url_status us
ON us.urlid = u.urlid
WHERE u.publicationid = 1
GROUP BY u.urlid
如果在{{1}中没有匹配的行时COUNT(*)
为零很重要,则可以将COUNT(us.urlid)
替换为url_status
(或historySize
中的其他列) }}