我正在编写一个 MySQL 查询,该查询获取潜在客户列表(来自提交表单的潜在客户)和该订单的乘客计数,其中潜在客户详细信息缺失或为空或 = default
。所以我加入了 Lead_detail 表,但只知道如何检查它是否存在,而不知道如何检查它是否不存在。这就是我到目前为止所拥有的 -
SELECT l1.id, (
/* sub query to get the passenger count from field 22 */
SELECT lm1.`value` FROM lead_detail lm1
WHERE lm1.form_id = l1.form_id AND lm1.lead_id = l1.id
AND lm1.field_number = 22
) passengers FROM lead l1
/* join our detail table */
LEFT JOIN lead_detail lm2 ON (l1.id = lm2.lead_id)
WHERE lm2.field_number = 29 AND lm2.form_id = 1
AND lm2.lead_id = l1.id AND (lm2.`value` = 'default' OR lm2.`value` = '')
/* make sure we are on lead form 1 and they have paid */
AND l1.form_id = 1 AND l1.payment_status = 'Paid'
仅供引用,字段编号22 = 乘客人数
字段编号29 = 表单访问 key (空、默认
或不存在)
可能值得注意的是,这是 Gravity Forms WordPress 插件,但这绝对是我想要实现的自定义操作。 lm2 表结构如下 -
(int) id
(int) lead_id
(int) form_id
(int) field_number
(string) value
希望我想做什么很清楚。谢谢!
最佳答案
您应该更改 lead_detail
子查询的别名(例如 lm2
),或者主查询中同一表的别名。示例:
/* sub query to get the passenger count from field 22 */
SELECT lm2.`value` FROM lead_detail lm2
WHERE lm2.form_id = l.form_id AND lm2.lead_id = l.id
AND lm2.field_number = 22
关于MySQL 其中连接不存在或 = 'default' 或 = '',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29386361/