从一个表到另一个表的联接子句,到一个表的外键混合的地方

时间:2019-01-02 11:33:29

标签: mysql sql

因此,我希望合并两个表(reservation和facility_items)。 Reservation.facility_item_id由一行中的多个facility_item_id组成。现在我无法加入他们,因为我无法将reservation.facility_item_id连接到facility_items.facility_item_id

这是我的表的结构:

  

预订

a busy cat

  

facility_item

facility_item

  

预订内容

reservation content

  

facility_item内容

facility_item content

`SELECT * FROM reservations r 
JOIN facility_items f on r.facility_item_id IN 
(
  SELECT facility_item_id 
  FROM facility_items
)`

lmao。我什至不知道我在做什么,但这就是我的开始。

预期结果应显示3 facility_item_id,但我得到了:

actual result

1 个答案:

答案 0 :(得分:0)

哇,我真的没有检查表上的内容,它确实比简单的连接还要复杂。我想您正在使事情变得复杂,因为这是一个1xN的关系,并且将其存储在错误的一侧(从1侧而不是N侧)。

您的设施表中应有一个字段,应存储预订ID。然后一个简单的连接就足够了:

SELECT * 
FROM reservations r JOIN facility f  
  ON r.reservation_id = f.reservation_id 

第一次尝试,不会成功

似乎简单的连接就足够了。你可以试试这个吗?

SELECT * 
FROM reservations r JOIN facility_items f 
  ON r.facility_item_id = f.facility_item_id