我有一个疑问如下。
select
*,
(select COUNT(*) from Table2 hv where hv.CompanyID=hc.CompanyID) VacancyCount
from Table1 hc
where
hc.Deleted = 0
order by hc.NameLang1, VacancyCount desc
它总是给我正确的记录。我只想在这里添加一个子句,即仅从 Table1 中选择那些在 Table2 中至少有一条记录的记录。当前它返回在 Table2 中具有 0 条记录的所有记录。
请帮我解决这个问题。
最佳答案
试试这个
SELECT
*,
(SELECT COUNT(*) FROM Table2 hv WHERE hv.CompanyID=hc.CompanyID) VacancyCount
FROM Table1 hc
WHERE EXISTS (SELECT hv.CompanyID FROM Table2 hv WHERE hv.CompanyID=hc.CompanyID)
AND hc.Deleted = 0
ORDER BY hc.NameLang1, VacancyCount DESC;
有关 EXISTS 的更多信息 http://dev.mysql.com/doc/refman/5.7/en/exists-and-not-exists-subqueries.html
关于mysql - 在sql server中从子表中获取计数大于0的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35145858/