我想了解SQL自連接。我有以下表「人」具有名字,姓氏,地址和僱員的城市(來源W3Schools的):瞭解SQL自加入
mysql> select * from persons;
+------+-----------+-----------+--------------+-----------+
| P_id | LastName | FirstName | Address | City |
+------+-----------+-----------+--------------+-----------+
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
+------+-----------+-----------+--------------+-----------+
我現在想返回具有相同的城市作爲的僱員的姓名「漢森奧拉'。所以我寫了一個自連接,它工作正常:
mysql> select p1.Lastname, p1.firstname from persons p1, persons p2 where p1.city = p2.city and p2.lastname = 'Hansen';
+----------+-----------+
| Lastname | firstname |
+----------+-----------+
| Hansen | Ola |
| Svendson | Tove |
+----------+-----------+
但是,如果我別名P2變更爲P1即p2.lastname =「漢森」到p1.lastname =「漢森」,然後我不t取得兩名僱員的姓名。
mysql> select p1.Lastname, p1.firstname from persons p1, persons p2 where p1.city = p2.city and p1.lastname = 'Hansen';
+----------+-----------+
| Lastname | firstname |
+----------+-----------+
| Hansen | Ola |
| Hansen | Ola |
+----------+-----------+
有人請幫我理解爲什麼改變別名從p2到p1會改變結果嗎?謝謝。
謝謝。我現在明白了。 – 2013-03-04 06:16:20