返回表中的行,其中列中的值出现多次

时间:2014-01-17 15:50:58

标签: mysql join

我有两个表人和订单,并且当一个人在订单表中有多个订单时,想要使用personID从人返回行。

SELECT person.* FROM person JOIN orderr ON person.personID = orderr.personID HAVING COUNT(orderr.personID) > 1;

以上似乎打印在表格的第一行。

以下是订购者表中的数据:

2 个答案:

答案 0 :(得分:0)

获得personID:

select personID
from orderr 
group by personID
having COUNT(*) > 1

或获取所有人员字段:

select *
from person
where personID in (
    select personID
    from orderr 
    group by personID
    having COUNT(*) > 1
)

答案 1 :(得分:0)

我认为最简单的方法是将其表示为join和聚合:

SELECT person.*
FROM person JOIN
     orderr
     ON person.personID = orderr.personID 
GROUP by person.personID
HAVING count(*) > 1;