我需要做一個mysql查詢來回答總統表中的問題 - 哪裏有任何年份的時候總統出生和其他總統死亡?在同一個mysql表中找到同一年的兩個不同列
的總統表具有以下 姓氏,FIRST_NAME,出生,死亡,州,市
我試圖
SELECT * FROM總裁,YEAR(出生)= YEAR(死亡); 但我有空集。
我在這裏錯過了什麼?幫幫我!
我需要做一個mysql查詢來回答總統表中的問題 - 哪裏有任何年份的時候總統出生和其他總統死亡?在同一個mysql表中找到同一年的兩個不同列
的總統表具有以下 姓氏,FIRST_NAME,出生,死亡,州,市
我試圖
SELECT * FROM總裁,YEAR(出生)= YEAR(死亡); 但我有空集。
我在這裏錯過了什麼?幫幫我!
你需要做的是查詢總統表,然後重新加入與死亡日期和出生日期相匹配的表格。
SELECT * FROM presidents p1
JOIN presidents p2
ON p1.birth = p2.death
這隻返回有總統出生匹配總統死亡的行。如果你想所有的出生,你可以使用LEFT JOIN
和所有死亡,可以使用RIGHT JOIN
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));
編輯: 解釋一下你在發言中失蹤。你只是比較同一位總統的出生年份和死亡年份。您沒有將該行與其他行進行比較。
謝謝!內部連接工作! – user3290664
如果優化者知道美國憲法,它會知道對任何擔任總統職位的特定人員,「年(死亡)」必須至少爲「年(生)+ 35」。 –