如何从mysql的何处获取所有价值?
在mysql中使用count+where时,如何返回所有值 mysql:如何从mysql的何处获取所有价值?,mysql,sql,Mysql,Sql,在mysql中使用count+where时,如何返回所有值 mysql: SELECT COUNT(*) as count , promocode FROM `dat_booking` WHERE promocode IN ("ABC","DEF","XYZ") GROUP BY promocode; 结果: count promocode 3 ABC 6 XYZ 但我也希望如果它在表dat_中没有值,那么它返回0 我想: count promocode 3
SELECT COUNT(*) as count , promocode FROM `dat_booking` WHERE promocode IN ("ABC","DEF","XYZ") GROUP BY promocode;
结果:
count promocode
3 ABC
6 XYZ
但我也希望如果它在表dat_中没有值,那么它返回0
我想:
count promocode
3 ABC
0 DEF
6 XYZ
感谢阅读假设您有另一个用于promocodes静态值的表:
SELECT 1 as req, promocode,count(*) FROM `dat_booking` WHERE promocode IN ("ABC","DEF","XYZ") GROUP BY promocode union select 2 as req, 'XYZ', 0 order by req
看,在另一个表中是否有促销代码?我的意思是,如果您有一个静态表,其中包含所有类型的promocodes?是的,如果没有值“DEF”,我认为您必须先创建一个临时表,并使用外部联接,然后才能创建记录“DEF”进行交叉引用。@Godot是的,我有另一个表存储所有PromocDeth这是新信息,并创建一个不同的(更简单的)问题。我建议您删除此问题,并再次尝试提供一个清晰的问题,以及所有相关信息。尝试询问OP想要什么。。。他从来没有说过静态值在另一个表中,但是这是最好的解决方案^^^我在上面问过,他写道他有静态表:)感谢您提供这个代码片段,它可能会提供一些有限的短期帮助。通过说明为什么这是一个很好的问题解决方案来正确解释它的长期价值,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。
SELECT
COUNT(*) as count ,
`dat_booking`.promocode
FROM `dat_booking` LEFT JOIN `some_static_promocode_table`.promocode
ON `some_static_promocode_table`.promocode = `dat_booking`.promocode
WHERE `dat_booking`.promocode IN ("ABC","DEF","XYZ") GROUP BY
`dat_booking`.promocode;