MySQL使用两列连接在同一个表中

MySQL使用两列连接在同一个表中,mysql,Mysql,我有一个包含以下字段的表: orderID collection delivery username 收货和发货是ID,与地址表中的记录相对应: addressID address1 address2 address3 town country 如何编写一个查询,显示特定用户名的所有订单,但包含收款和交货的完整地址详细信息。您只需向加入的表中添加别名即可 select * from orders join addresses collections on orders.collection

我有一个包含以下字段的表:

orderID
collection
delivery
username
收货和发货是ID,与地址表中的记录相对应:

addressID
address1
address2
address3
town
country

如何编写一个查询,显示特定用户名的所有订单,但包含收款和交货的完整地址详细信息。

您只需向加入的表中添加别名即可

select * from orders 
join addresses collections on orders.collection = collections.addressID 
join addresses deliveries on orders.delivery = deliveries.addressID
where username=<username>
从订单中选择*
加入订单上的集合地址。集合=集合。地址ID
join addresses-delivery-on-orders.delivery=deliveries.addressID
用户名在哪里=

select orders.*,address1作为收款_address1,addresses.address1作为交货_name从订单左侧加入订单上的地址。delivery=addresses.addressID,其中username='chris'但我只得到收款和交货的相同地址:-(Hi select*from orders join ADDRESS orders上的集合。集合=集合。地址ID join ADDRESS orders上的交付。交付=交付。地址ID给我:“on子句”中的未知列“collection.addressID”选择*from orders join ADDRESS orders上的集合。集合=地址。地址ID join ADDRESS orders上的交货。交货=地址。地址ID给我:“未知列”地址。“on子句”中的“addresses.addressID”但它肯定就在那里?是的,对不起,我修复了它。我没有测试它…你看到加入地址后的单词了吗?这是你应该在on子句中使用的别名我不确定你的要求,也许你不应该按原样使用此查询:你可能想使用left join而不是join,并且你可能需要在select子句tooThanks,我添加了别名。我假设在地址表中没有相应地址的订单的情况下,将使用左联接?确切地说,如果使用标准联接,则查询不会返回没有地址的订单