也許我有一個不好的設計,但我目前正在嘗試 得到一個小型商店的訂購系統和運行。因爲它是 禮品訂單可以讓發件人和收件人顯示訂單的來往地點。
因此,我們有表選擇兩個參考表
Person
personid
name
address
Order
Sender_personid
Receiver_personid
etc...
我無法創建一個SQL語句的順序來選擇兩個人的名字和地址。如果這可以做任何指針會很好。如果沒有任何設計指針同樣令人讚歎的話。
也許我有一個不好的設計,但我目前正在嘗試 得到一個小型商店的訂購系統和運行。因爲它是 禮品訂單可以讓發件人和收件人顯示訂單的來往地點。
因此,我們有表選擇兩個參考表
Person
personid
name
address
Order
Sender_personid
Receiver_personid
etc...
我無法創建一個SQL語句的順序來選擇兩個人的名字和地址。如果這可以做任何指針會很好。如果沒有任何設計指針同樣令人讚歎的話。
我想你想是這樣的:
SELECT
SP.*,
RP,*,
O.*
FROM Order O
JOIN Person SP ON SP.PersonID = O.Sender_PersonID
JOIN Person RP ON RP.PersonID = O.Receiver_PersonID
在桌子上剛剛加入的兩倍。
基本上你只是做同樣的事情,就好像你只想得到1個人(比如只有接收者),但是這次你加入了這個表格兩次。表別名可以幫助理解
SELECT receiver.name, sender.name
FROM order o, person as receiver, person as sender
where o.sender_personid = receiver.personid
and o.sender_personid = sender.personid
爲什麼不顯式連接語法? – 2011-03-13 17:41:12
如果您更改爲JOIN(自1992年以來推薦的SQL語法),我會加註。 – gbn 2011-03-13 17:41:16
@Martin - 也就是說,它只是ANSI-89。但我同意,我一般不會投票贊成,只是ANSI-92。 – 2011-03-13 17:42:11
這工作很好,謝謝.. – BastanteCaro 2011-03-13 17:49:32