我想从下表中了解我购买的所有细节,
1) tbl_track
2) tbl_album
3) tbl_purchase
tbl _purchase table: -
item_id
type
price
tbl_track表: -
id
title
description
tbl_album表: -
id
title
description
现在基于tbl_purchase的类型我要加入其中一个表,
这意味着,如果type = 0
然后LEFT JOIN
与tbl_track
和type = 1
,则LEFT JOIN
与tbl_album
。
我想只用一个查询来完成这些操作,可以通过两个查询轻松完成。
提前致谢。
答案 0 :(得分:3)
使用UNION
:
SELECT p.type, t.id, t.title, t.description
FROM tbl_purchase p
JOIN tbl_track t ON t.id = p.item_id AND p.type = 0
UNION
SELECT p.type, a.id, a.title, a.description
FROM tbl_purchase p
JOIN tbl_album a ON a.id = p.item_id AND p.type = 1
答案 1 :(得分:2)
我认为你无论如何都需要左边连接两个表。因此,您可以使用下一个查询,例如
SELECT P.*,
T.id AS track_id,
A.id AS album_id
FROM tbl_purchase AS P
LEFT JOIN tbl_track AS T ON P.item_id = T.id
AND P.type = 0
LEFT JOIN tbl_album AS A ON P.item_id = A.item_id
AND P.type = 1
答案 2 :(得分:0)
试试这个:
SELECT *
FROM tbl_purchase A
LEFT OUTER JOIN tbl_track B ON A.item_id = B.id AND A.type = 0
LEFT OUTER JOIN tbl_album C ON A.item_id = C.id AND A.type = 1;