Mysql 如何连接同两个表中的多个记录
我有一个关于连接来自同两个表的多个数据的问题 第一个表称为Mysql 如何连接同两个表中的多个记录,mysql,join,left-join,Mysql,Join,Left Join,我有一个关于连接来自同两个表的多个数据的问题 第一个表称为imagedata,它包含以下列: ID|image_blob|mimetype|image_UUID price1|price2|image_name_homePage|image_name_loginPage|image_name_footer 第二个表称为price\u history,它包含以下列: ID|image_blob|mimetype|image_UUID price1|price2|image_name_home
imagedata
,它包含以下列:
ID|image_blob|mimetype|image_UUID
price1|price2|image_name_homePage|image_name_loginPage|image_name_footer
第二个表称为price\u history
,它包含以下列:
ID|image_blob|mimetype|image_UUID
price1|price2|image_name_homePage|image_name_loginPage|image_name_footer
我试图从imagedata
表中提取image\u blob
在哪里
在哪里
imagedata.ID=price_history.image_name_loginPage
imagedata.ID=price_history.image_name_footer
在哪里
imagedata.ID=price_history.image_name_loginPage
imagedata.ID=price_history.image_name_footer
基本上,我试图实现的结果是显示imagedata
中的所有图像斑点,其中imagedata.id
等于price\u history。“price\u history.image”
我似乎做不好。我得到一个空的结果。
以下是我当前的查询:
SELECT
imagedata.`image_blob` as "blobA",
imagedata.`image_blob` as "blobB",
imagedata.`image_blob` as "blobC",
FROM
imagedata
JOIN price_history AS price_historyA ON imagedata.`ID`=price_historyA.`image_name_homePage`
JOIN price_history AS price_historyB ON imagedata.`ID`=price_historyB.`image_name_loginPage`
JOIN price_history AS price_historyC ON imagedata.`ID`=price_historyB.`image_name_footer`
您的查询已关闭,但您需要多次连接
imagedata
表,如下所示,请注意,它使用left join
而不是内部连接,这样,如果price\u history
上缺少某个图像值,您仍然可以使用其他可用图像获得结果。如果您的DB始终具有price\u历史记录中所有图像的数据,并且相应的项目将位于imagedata
中,则您可以使用join
而不是left join
select
img1.image_blob as blobA,
img2.image_blob as blobB,
img3.image_blob as blobC,
from price_history ph
left join imagedata img1 on img1.id = ph.image_name_homePage
left join imagedata img2 on img2.id = ph.image_name_loginPage
left join imagedata img3 on img3.id = ph.image_name_footer
你应该试试:
SELECT
imagedata.`ID`,
imagedata.`image_blob`
FROM
imagedata
JOIN price_history AS price_historyA ON imagedata.`ID`=price_historyA.`image_name_homePage`
AND imagedata.`ID`=price_historyA.`image_name_loginPage`
AND imagedata.`ID`=price_historyA.`image_name_footer`
如果希望所有三列都等于imagedata.ID
我正在上传屏幕截图以显示问题:
您可以显示示例数据和预期结果吗,或者最好提供一个SQLFIDLE。price\u historyC
的连接指的是price\u historyB
,这可能是您的问题。谢谢!真是太棒了!如果我想从第三个表products
添加更多数据,例如product\u name
和product\u updated
,我也可以加入其中吗?产品有productId
,这相当于price\u历史中的productId
,我上传了几个屏幕截图来说明问题。