mysql - 在sql server中从子表中获取计数大于0的记录

标签 mysql sql

我有一个疑问如下。

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/

相关文章:

php - 子查询或求和内求和。这是可能的?

php - 关系型数据库 MYSQL/PHP

php - 使用此代码我只能得到一个结果

sql - 允许角色查询、插入和更新可变数组

python - SQLAlchemy 无法使用 mysql 将 boolean 转换为 int

javascript - 无法从服务器链接图像

sql - 省略日期中的毫秒数

MySql 选择计数...不喜欢

java - 使用 LogicalConnection 传递数组/表 Oracle 类型

mysql - 大查询会影响性能