我有一个关于MySQL查询的问题。有两个表,人和已婚。
Persons:
ID
SurName
FirstName
ID_Father
ID_Mother
Married:
ID
PersonID1
PersonID2
Marriage
Divorce
PersonID1始终为男性,ID2始终为女性。
我的目标是获取一个列表,其中包含FirstName,SurName以及目前或曾与ID = 1的人结婚的所有女性的孩子数。不知何故,我无法将其放在一个Select语句中。
以下是我目前使用的两个陈述。
SELECT FirstName,SurName,ID FROM Persons WHERE ID in(SELECT 已结婚。已结婚的人已结婚.PersonID1 = 1);
SELECT Persons.ID_Mother as ID,count(Persons.ID_Mother)as 来自人的NoOfChildren来自Persons.ID_Mother;
提前致谢
答案 0 :(得分:1)
我认为这个查询可以胜任。
SELECT
woman.FirstName,
woman.SurName,
count(kid.ID) AS kids
FROM Persons AS woman
INNER JOIN married
ON married.PersonID2 = woman.ID
LEFT JOIN Persons AS kid
ON kid.ID_Mother = woman.ID
WHERE married.PersonID1 = 1
GROUP BY woman.ID