2017-03-02 90 views
0
-EmployeeId int(11) PK 
-LastName varchar(20) 
-FirstName varchar(20) 
-ReportsTo int(11) 
-Address varchar(70) 
-City varchar(40) 
-PostalCode varchar(10) 

查找誰住在同一個城市,在同一 郵政編碼爲做他們的主管所有員工(姓氏,名字)。加入同MySQL表

我在過去的幾個小時裏一直在試圖解決這個問題,無法通過我所擁有的。

SELECT * 
FROM chinook.employee 
WHERE ReportsTo In 
    (SELECT EmployeeId From chinook.employee); 

我在想一些類型的連接,以使這項工作。 ReportsTo ID與EmployeeID關聯。我相信你會想要加入同一張專欄,但不知道如何去做。

Picture of mySql Database

+1

添加一些示例表數據和預期的結果使用 - 無論以及格式化文本。 (當你編輯,標記文本並點擊'{}'。) – jarlh

+0

成員幫我修復了我的格式。我希望當我完成這個表時,會顯示錶中的3,4,5個成員,因爲他們在數據庫中與城市編號employeeID 2相同。 –

回答

0

聯袂表本身是正確的道路。

可以聯接t1.reportsTo = t2.employeeID,然後根據其中的條件t1.city = t2.city and t1.postalCode = t2.postalCode

select t1.LastName, t1.FirtsName 
from chinook.employee as t1 
join chinook.employee as t2 
    on t1.reportsTo = t2.employeeID 
where t1.city = t2.city and t1.postalCode = t2.postalCode 
+0

我該怎麼做呢?我正在考慮將報告提交給員工,以便與員工一起排隊,以便將兩個單獨的城市和郵政編碼排成一行進行比較。 –

+0

用示例代碼編輯我的答案。基本上你希望在同一行中有員工和主管的數據,以便你可以比較他們的城市和郵政編碼。 要做到這一點,你可以自己加入表格,這很有意義,因爲主管也是一名員工。 –

+0

哦!我不知道你可以這樣使用「as」。我非常欣賞示例查詢,並可以解決這個問題,以解決其他sql問題。 –