添加第5个表加入

时间:2012-04-06 14:22:50

标签: mysql database

也许现在还为时尚早,但我可以弄清楚为什么我无法将第五个表的查询与我当前的查询语句一起加入。

这是我当前的查询

SELECT xp.productid, xp.product, xc.classid, xco.optionid, xco.option_name, count(xi.optionid) as cnt
FROM xcart_products xp
INNER JOIN xcart_classes xc ON xp.productid = xc.productid AND xc.class = 'Color'
INNER JOIN xcart_class_options xco ON xc.classid = xco.classid
LEFT JOIN xcart_images_D xi ON xi.optionid = xco.optionid
GROUP BY xp.product, xco.optionid
ORDER by xp.product DESC

我正在尝试添加以下查询,该表的设置与xcart_images_D非常相似

JOIN xcart_images_T xiT ON xi.id = xiT.id

截至目前,我添加联接后的结果大约是2,000到20。

1 个答案:

答案 0 :(得分:1)

通过这样做:

JOIN xcart_images_T xiT ON xi.id = xiT.id

您正在使xcart_images_t的JOIN取决于您的(xi)xcart_images_D表。因此,如果您的xcart_images_D表格不匹配,那么您的xcart_images_T也不会返回匹配。

同样通过指定JOIN,您隐式指示INNER JOIN,这也可能是您问题的一部分。如果在xcart_images_T中匹配并不是一个要求,那么它应该是一个LEFT JOIN。

xcart_images_T看起来与xcart_images_D类似,所以尝试LEFT JOIN并使用xco.optionid作为JOIN键:

LEFT JOIN xcart_images_T xiT ON xiT.id = xco.optionid

此外,如果您希望看到xcart_images_T或xcart_images_D中的任何字段,则需要将这些字段添加到SELECT中。看看是否有帮助。