拉结果缺少数据LEFT JOIN

伊万

如何在查询atm中与product_id进行匹配,查询仅提取缺少的结果,但每个产品都有自己的记录,需要与此记录匹配

此查询工作正常,但与product_id不匹配

$query = $this->db->query("SELECT oc_ekstri_frontend.*,
                              oc_ekstri_image.id as img_id,
                              oc_ekstri_image.name
                              FROM oc_ekstri_image
LEFT JOIN oc_ekstri_frontend ON (oc_ekstri_frontend.id = oc_ekstri_image.frontend_id)
LEFT JOIN oc_ekstri_frontend_view ON (oc_ekstri_frontend_view.ekstri_id = oc_ekstri_image.id)
                              WHERE oc_ekstri_frontend.subcat_id = '" . $id . "'
                             AND oc_ekstri_frontend_view.ekstri_id IS NULL");

我将如何匹配当前的product_id?我试过这样的事情添加到查询,但不是工作结果为空

AND oc_ekstri_frontend_view.product_id = '" . $product_id . "'
蒂姆·比格莱森(Tim Biegeleisen)

没有看到您的数据或预期的输出,很难给出确切的答案。一种可能的解决方案是将新的限制从WHERE子句移到ON子句:

SELECT
    f.*,
    i.id AS img_id,
    i.name
FROM oc_ekstri_image i
LEFT JOIN oc_ekstri_frontend f
    ON f.id = i.frontend_id
LEFT JOIN oc_ekstri_frontend_view v
    ON v.ekstri_id = i.id AND
       v.product_id = ?
WHERE
    f.subcat_id = ? AND
    v.ekstri_id IS NULL;

?在上面的查询中使用占位符,建议您使用准备好的语句,而不是在参数中进行串联。如果您不知道PHP中准备好的语句是什么,则应该阅读它们

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章