所有值相同的MySQL组\u CONCAT
我有以下疑问:所有值相同的MySQL组\u CONCAT,mysql,Mysql,我有以下疑问: SELECT * FROM charges WHERE ( charges.id not in ( select charge_id from billing_invoice_charges where is_deactivated = 0 ) ) 我需要将其转换为联接查询,因此我正在尝试: SELECT charges.id, group_concat(bic.is_deactivated) AS active_statuses FROM charges L
SELECT * FROM charges WHERE (
charges.id not in (
select charge_id from billing_invoice_charges where is_deactivated = 0
)
)
我需要将其转换为联接查询,因此我正在尝试:
SELECT charges.id, group_concat(bic.is_deactivated) AS active_statuses
FROM charges LEFT JOIN billing_invoice_charges AS bic
ON bic.charge_id = charges.id GROUP BY charges.id
HAVING .......; <--- Check if all values are 1's
如何检查HAVING子句中的所有值if
active\u status
是否为1?这将给我提供我正在寻找的费用。尝试使用HAVING
子句,该子句使用条件聚合来确保每个组不出现非1
状态
SELECT
charges.id,
GROUP_CONCAT(bic.is_deactivated) AS active_statuses
FROM charges
LEFT JOIN billing_invoice_charges AS bic
ON bic.charge_id = charges.id
GROUP BY charges.id
HAVING SUM(CASE WHEN bic.is_deactivated <> 1 THEN 1 ELSE 0 END) = 0
选择
费用,身份证,
组连接(bic.已停用)作为活动状态
控告
作为bic的左连接账单\发票\费用
在bic.charge\u id=charges.id上
按费用分组。id
具有总和(当bic.u被停用时,1,则1,否则0结束)=0
尝试一个HAVING
子句,该子句使用条件聚合来确保每组不出现非1
状态
SELECT
charges.id,
GROUP_CONCAT(bic.is_deactivated) AS active_statuses
FROM charges
LEFT JOIN billing_invoice_charges AS bic
ON bic.charge_id = charges.id
GROUP BY charges.id
HAVING SUM(CASE WHEN bic.is_deactivated <> 1 THEN 1 ELSE 0 END) = 0
选择
费用,身份证,
组连接(bic.已停用)作为活动状态
控告
作为bic的左连接账单\发票\费用
在bic.charge\u id=charges.id上
按费用分组。id
具有总和(当bic.u被停用时,1,则1,否则0结束)=0
试试:
它应该忽略0处于活动状态的任何结果尝试:
这应该会忽略活动状态为0的任何结果好吧,这对我来说也很有效,只需稍微添加一点,活动状态不像“%0%”,或者活动状态为空
。但是,根据我的问题,这是正确的!!!嗯,这对我来说也很有效,只需稍微增加一点,使活动\u状态与“%0%”不同,或者活动\u状态为NULL。但是,根据我的问题,这是正确的!!!
SELECT
charges.id,
GROUP_CONCAT(bic.is_deactivated) AS active_statuses
FROM charges
LEFT JOIN billing_invoice_charges AS bic
ON bic.charge_id = charges.id
GROUP BY charges.id
HAVING active_statuses NOT LIKE '%0%'