2014-02-09 57 views
0

我需要做一個mysql查詢來回答總統表中的問題 - 哪裏有任何年份的時候總統出生和其他總統死亡?在同一個mysql表中找到同一年的兩個不同列

的總統表具有以下 姓氏,FIRST_NAME,出生,死亡,州,市

我試圖

SELECT * FROM總裁,YEAR(出生)= YEAR(死亡); 但我有空集。

我在這裏錯過了什麼?幫幫我!

+0

如果優化者知道美國憲法,它會知道對任何擔任總統職位的特定人員,「年(死亡)」必須至少爲「年(生)+ 35」。 –

回答

0

你需要做的是查詢總統表,然後重新加入與死亡日期和出生日期相匹配的表格。

SELECT * FROM presidents p1 
JOIN presidents p2 
ON p1.birth = p2.death 

這隻返回有總統出生匹配總統死亡的行。如果你想所有的出生,你可以使用LEFT JOIN和所有死亡,可以使用RIGHT JOIN

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)); 

編輯: 解釋一下你在發言中失蹤。你只是比較同一位總統的出生年份和死亡年份。您沒有將該行與其他行進行比較。

+0

謝謝!內部連接工作! – user3290664

相關問題