我有以下表格(为简单起见,省略了其他表格)。1适用于所有人,2适用于这些人从事的运动。我正在使用php允许用户查看人员列表。他们可以按人的名字或参加的体育活动进行过滤。因此,我希望能够看到所有参加比赛的人,例如棒球和足球。
create table people ( id int, name varchar(50) ); create table people_to_sports ( personID int, sportID int, primary key(personID,sportID) );
基本上,我的问题是,如何使用people_to_sports获得所有参加运动1和运动2的人的列表?
我在这里有一个sqlfiddle 。
谢谢!
SELECT personID FROM people_to_sports WHERE sportID IN (1, 2) GROUP BY personID HAVING COUNT(*) = 2