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