在where子句中使用子查询结果

时间:2013-04-12 18:36:28

标签: mysql sql subquery

select distinct (`hostname`)  as  h from `drpl_comment` c where 
(select count(cid) from  `drpl_comment` where  hostname == h ) > 0

如果主机名值在表格中出现多次,我的目的是从drpl_comment表中获取所有主机名。

你能帮我构建一下这个查询吗?

2 个答案:

答案 0 :(得分:3)

您只需使用GROUP BYHAVING

即可
SELECT  hostname
FROM    drpl_comment
GROUP   BY hostName
HAVING  COUNT(cid) > 0

答案 1 :(得分:0)

试试这个

SELECT DISTINCT `hostname` AS h, COUNT(`hostname`) AS count_h 
FROM `drpl_comment`
GROUP BY `hostname`
HAVING count_h > 2

GROUP BY ... HAVING解决了这个问题:)

更新

J W 所述,使用DISTINCT不会影响此上下文中的查询结果。所以它可以从查询中删除。