简体   繁体   English

mysql加入同一张表

[英]mysql joins on the same table

node = id,title,kenya_hotel_id,tanzania_hotel_id 节点= id,标题,kenya_hotel_id,tanzania_hotel_id

2,Fantastic package for kenya and Tanzania, 8, 5 
5,Delux package for kenya and tanzania, 8, 4 

hotel = id,name,star 酒店= ID,名称,星级

4, simba continental, 3 star
5, african safari hotel, 4 star
8, kenya hotel, 5 star

Mysql statement which I have attempted as below 我尝试如下的MySQL语句

SELECT node.title AS title,
    hotel.name AS kenyan_hotel,
    hotel.star AS kenya_hotel_star,
    hotel.name AS Tanzanian_hotel,
    hotel.star AS Tanzanian_hotel_star
FROM
node
INNER JOIN node on node.kenya_hotel_id = hotel.id
LEFT JOIN node on node.tanzania_hotel_id = hotel.id

well i would like results such as 好吧,我想要这样的结果

title, kenya hotel name, kenya hotel star, tanzania hotel, tanzania hotel star

what am i doing wrong? 我究竟做错了什么?

You need table aliases 您需要表别名

SELECT n.title AS title,
       hotelk.name AS kenyan_hotel,
       hotelk.star AS kenya_hotel_star,
       hotelt.name AS Tanzanian_hotel,
       hotelt.star AS Tanzanian_hotel_star
 FROM node n INNER JOIN
      hotel hotelk
      on n.kenya_hotel_id = hotelk.id LEFT JOIN
      hotel hotelt
      on n.tanzania_hotel_id = hotelt.id;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM