也许我有一个不好的设计,但我目前正在尝试 得到一个小型商店的订购系统和运行。因为它是 礼品订单可以让发件人和收件人显示订单的来往地点。
因此,我们有表选择两个参考表
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