Mysql 基于字段值的左联接

Mysql 基于字段值的左联接,mysql,sql,select,join,left-join,Mysql,Sql,Select,Join,Left Join,我想从下表中了解我购买的所有细节 1) tbl_track 2) tbl_album 3) tbl_purchase tbl_采购表:- item_id type price tbl_轨道表:- id title description tbl_相册表:- id title description 现在根据tbl_购买的类型,我想加入表中的一个, 这意味着如果type=0则与tbl\u曲目左连接,对于type=1则与tbl\u专辑左连接 我只想用一个查询完成这些操作,用两个查询就可以轻松

我想从下表中了解我购买的所有细节

1) tbl_track
2) tbl_album
3) tbl_purchase
tbl_采购表:-

item_id
type
price
tbl_轨道表:-

id
title
description
tbl_相册表:-

id
title
description
现在根据tbl_购买的类型,我想加入表中的一个, 这意味着如果
type=0
tbl\u曲目
左连接
,对于
type=1
tbl\u专辑
左连接

我只想用一个查询完成这些操作,用两个查询就可以轻松完成


提前谢谢。

我想你无论如何都需要左键连接两个表。因此,您可以使用下一个查询作为示例

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

我想你无论如何都需要左键连接两个表。因此,您可以使用下一个查询作为示例

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
试试这个:

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;
试试这个:

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;

使用
接头

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

使用
接头

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

我试过很多例子,但对我不起作用。我试过很多例子,但对我不起作用。我很感激你的回答,但它对我不起作用。为什么不呢?您在执行此查询时是否有任何错误?我很感激您的回答,但它对我不起作用。为什么不?执行此查询时是否有任何错误?