如何在查询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 . "'
没有看到您的数据或预期的输出,很难给出确切的答案。一种可能的解决方案是将新的限制从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] 删除。
我来说两句