加入一对多

时间:2017-08-23 09:13:24

标签: mysql one-to-many

我有两张桌子,

第一个表有一个名为PKID的主键 表A:

PKID     | name
------ | ------
1      | A
2      | b

第二个表将表A中的PKID列作为外键 表B:

PKID     | name
------ | ------
1      | true
1      | false
2      | false
2      | false
2      | false

当所有孩子都有来自表B的(假)值时,我需要从表A中选择所有行

我想输出下表:

id     | name
------ | ------
2      | b

2 个答案:

答案 0 :(得分:1)

请试试这个:

SELECT * from A LEFT JOIN B on B.PKID=B.PKID where B.name ='false' 

答案 1 :(得分:1)

您可以使用以下查询,在这种情况下,GROUP_CONCAT函数将非常有用

SELECT GROUP_CONCAT(DISTINCT B.name) as allData,B.PKID FROM A INNER JOIN B ON A.PKID = B.PKID GROUP BY B.PKID HAVING allData="false"