我需要做一个mysql查询,它将回答总统大会上的问题 - 总统出生和其他总统去世的那几年?
总统表有以下几点 Last_name,first_name,birth,death,state,city
我试过
SELECT * FROM President WHERE YEAR(出生)= YEAR(死亡); 但我得到了空位。
我在这里缺少什么?帮助!
答案 0 :(得分:0)
您需要做的是查询总统表,然后重新加入与死亡日期和出生日期相匹配的表格。
SELECT * FROM presidents p1
JOIN presidents p2
ON p1.birth = p2.death
这只返回总统出生时与总统死亡人数相匹配的行。如果您想要所有分娩,您可以使用LEFT JOIN
,并且对于所有死亡,您可以使用RIGHT JOIN
答案 1 :(得分:0)
SELECT * FROM president WHERE YEAR(birth) in (Select YEAR(death) from president);
或者如果你真的想要列出年份:
SELECT distinct YEAR(birth) FROM president WHERE YEAR(birth) in
(Select YEAR(death) from president);
或者你也可以用连接来解决它:
SELECT * FROM president p1 inner join president p2 on (YEAR(p1.birth) = YEAR(p2.death));
编辑: 解释你在陈述中遗漏的内容。你只是在比较同一位总统的出生年份和死亡年份。您没有将该行与其他行进行比较。