我需要一些帮助来通过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
我的车牌有:
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
我知道我可以在事务表和car表中执行LEFT JOIN,但是如何通过关系表加入store表。换句话说,我现在(我认为是错的):
SELECT transaction.*, car.carInfo LEFT JOIN car ON transaction.carID=car.ID
问题是如何执行下一个JOIN
,以便我可以在最后添加WHERE store.ID=3
以及获取store.storeInfo
列。我正在为失踪的加入而苦苦挣扎......
答案 0 :(得分:0)
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