我在以下查询中遇到奇怪的语法错误:
SELECT COUNT (*)
FROM a
JOIN b ON a.id = b.a_id
但是在没有COUNT
的情况下进行查询就像是一种魔力:
SELECT *
FROM a
JOIN b ON a.id = b.a_id
添加连接规范,如INNER,LEFT等--没有任何帮助。
语法错误并不确切地说明错误所在,只提供了某些代码: 42000
我该如何修复它?
编辑:
这就是它:
SELECT COUNT(customers.*)
FROM customers
JOIN customer_behaviour ON customers.id = customer_behaviour.customer_id
删除COUNT
会使其完全有效。这真的很奇怪!
发布于 2018-06-10 01:08:34
删除COUNT
和(*)
之间的空格
SELECT COUNT(*) FROM a JOIN b ON a.id = b.a_id
-- COUNT (*)
编辑:
SELECT COUNT(customers.*)
FROM customers
JOIN customer_behaviour
ON customers.id = customer_behaviour.customer_id
-- should be
SELECT COUNT(*)
FROM customers
JOIN customer_behaviour
ON customers.id = customer_behaviour.customer_id
-- or
SELECT COUNT(customers.id)
FROM customers
JOIN customer_behaviour
ON customers.id = customer_behaviour.customer_id
编辑2
现在,我可以给它添加
吗?看起来像是在使用计数(DISTINCT ...)再次开始抛出错误!
只需定义列名:
SELECT COUNT(DISTINCT table_name.column_name)
FROM customers
JOIN customer_behaviour
ON customers.id = customer_behaviour.customer_id
https://stackoverflow.com/questions/50776666
复制相似问题