gpt4 book ai didi

sql - 如何通过 N :N relationship table in SQL 加入

转载 作者:行者123 更新时间:2023-12-05 06:38:53 31 4
gpt4 key购买 nike

我需要一些帮助来通过 N:N 关系表进行连接。

在我的第一个表中,我有汽车租赁交易:

Transaction
-----------------------
id : carID : date
1 : 2 : 01-01-2017
2 : 2 : 01-01-2017
3 : 3 : 01-01-2017
4 : 4 : 01-01-2017

然后我的车 table 有:

Car
---------------
id : carInfo
2 : brown car
3 : red car
4 : green car
5 : orange car

我还有一个存储表:

Store
---------------
id : storeInfo
3 : city3
4 : city4
5 : city5

我的关系表是汽车和商店的组合,因为汽车可以从一家商店移动到另一家商店。换句话说,它是一次或另一次发现汽车的所有商店:

Relationship Table
------------------
carID : storeID
2 : 3
2 : 4
3 : 3

我想做的查询是获取记录交易列表,其中包括汽车和商店信息,假设我只需要来自商店的交易。因此,例如我想要商店 3 的所有交易。我特别想要这个结果表(SELECT transaction.*, car.carInfo, store.storeInfo WHERE store.ID=3)当然有适当的连接.

Joined Transaction result table
---------------------------------------
id : date : carID : carInfo : storeID : storeInfo

where storeID=3

我知道我可以在交易表和汽车表中执行 LEFT JOIN,但我如何通过关系表也加入商店表。换句话说,我目前有(我认为这是错误的):

SELECT transaction.*, car.carInfo LEFT JOIN car ON transaction.carID=car.ID

问题是如何执行下一个 JOIN 以便我可以在末尾添加 WHERE store.ID=3 以及获取 store.storeInfo 列。我正在为缺少的连接而苦苦挣扎......

最佳答案

SELECT 
transaction.*,
car.carInfo,
store.storeInfo
FROM
transaction
INNER JOIN
relationshipTable ON transaction.carID=relationshipTable.carID
LEFT JOIN
store ON relationshipTable.storeID=store.ID
WHERE
store.id=3

关于sql - 如何通过 N :N relationship table in SQL 加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45407311/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com