mysql - 提取缺失数据的结果
问题描述
如何在查询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 中的预处理语句是什么,您应该阅读它们。
推荐阅读
- javascript - 如何在 JavaScript 中构建 Spring 表单
- java - RazorPay 与 React JS 和 Java 应用程序集成
- javascript - JavaScript输入值不断消失
- python - isinstance 替代覆盖默认值
- java - 如何反转订单?
- sql - 从 postgreSQL 中的存储过程返回结果集
- sql - 如何在 postgresql 中的 with 子句之后使用 delete 子句?
- node.js - 护照本地策略 req.isAuthenticated() 始终为 false
- python - 安装成功后导入sip出现问题
- python - 如何在 python 中优化此动画代码