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
,我上传了几个屏幕截图来说明问题。