如何从同一个两个表中连接多个记录

时间:2015-06-26 08:24:58

标签: mysql join left-join

我有一个关于从相同的两个表中连接多个数据的问题。

第一个表名为imagedata,它包含以下列:

ID|image_blob|mimetype|image_UUID

第二个表名为price_history,它包含以下列:

price1|price2|image_name_homePage|image_name_loginPage|image_name_footer

我想要提取的是image_blob表中的imagedata

imagedata.ID=price_history.image_name_homePage

imagedata.ID=price_history.image_name_loginPage

imagedata.ID=price_history.image_name_footer

基本上,我想要实现的是一个结果,它会显示imagedata imagedata.id等于price_history."price_history.image_*"的所有图像blob 我似乎无法做对。我得到一个空洞的结果。 这是我目前的查询:

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` 

2 个答案:

答案 0 :(得分:0)

您的查询已关闭,但您需要多次加入imagedata表格,如下所示,请注意其使用left join代替内部联接,以便{{1}时缺少某些图片值你仍然可以得到其他可用图像的结果。如果您的数据库始终包含price_history上所有图片的数据,相应的项目将位于price_history,那么您只需使用imagedata代替join }

left join

答案 1 :(得分:0)

你应该尝试:

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

我上传截图以显示问题: enter image description here enter image description here