如何在查询 atm 中匹配和 product_id 查询只提取丢失的结果,但每个产品都有自己的记录,需要与此记录匹配
此查询工作正常,但与 product_id 不匹配
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 . "'
如果没有看到您的数据或预期的输出,就很难给出准确的答案。一种可能的解决方案可能是将您的新限制从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] 删除。
我来说两句