我有以下表格:
Sender
---------
ID, name, type, mobile
Receiver
-----------
ID, name, type, mobile
Ports
-----------
ID, name, city, country
Shipment
-----------
ID, Sender_ID, Receiver_ID, From_Port_ID, To_Port_ID, Date, Status我试图用名称而不是ID在我的网页中显示托运表内容。我可以通过以下查询获取发送方和接收方的名称:
SELECT sender.name AS Sender, receiver.name AS Receiver, shipment.id
FROM sender,receiver,shipment
WHERE shipment.sender_ID=sender.ID AND shipment.receiver_ID=receiver.ID如何从端口表中获取端口名?
发布于 2014-03-14 18:22:21
你可以用ports连接两次
select sender.name as Sender, receiver.name as Receiver,
shipment.id, port1.name as OriginPort, port2.name as DestinationPort
from sender,receiver,shipment, ports port1, ports port2
WHERE shipment.sender_ID=sender.ID
AND shipment.receiver_ID=receiver.ID
AND shipment.From_Port_ID = port1.id
AND shipment.To_Port_ID = port2.id我还建议您更改查询以使用join的显式语法(有关此的更多信息,请参见Explicit vs implicit SQL joins ),如下所示:
select sender.name as Sender, receiver.name as Receiver,
shipment.id, port1.name as OriginPort, port2.name as DestinationPort
from sender JOIN shipment ON sender.ID = shipment.sender_ID
JOIN receiver ON shipment.receiver_ID=receiver.ID
JOIN ports port1 ON shipment.From_Port_ID = port1.id
JOIN ports port2 ON shipment.To_Port_ID = port2.idhttps://stackoverflow.com/questions/22412771
复制相似问题