我正在使用phpMyAdmin来测试此查询,但不断收到语法错误。我试过在MySql手册中查找它并尝试其他语法可能性,但我在这个过程中变老了。谢谢你的帮助
SELECT image_title,image_id,COUNT(other_sales。*)FROM art INNER JOIN other_sales ON(art.image_id = other_sales.image_id) GROUP BY(other_sales.image_id);
MySQL说:文档
最终,我想计算'other_sales'表中特定数字(image_id)出现的次数
答案 0 :(得分:1)
要解决这些1064错误:
错误消息提供了您的查询片段。片段的第一个字符是MySQL解释器无法理解的第一个字符。
因此,对于您的查询,它是
SELECT image_title, image_id, COUNT(other_sales.*) FROM art INNER JOIN ...
ggggggggggggggggggggggggggggggggggggggggggggggggbbbbbbbbbbbbbbbbbbbbbbbbbbb
其中g
表示良好,b
表示不好。
您的实际问题:您不能在COUNT()
函数中放置多个值。你试图把COUNT(something.*)
放在没有意义的地方。
请注意COUNT(*)
是一个特殊情况,意味着只计算行数。
答案 1 :(得分:1)
表art
和other sales
可能都有列image_id
。
在列之前指定表art.imageid
,或者将表别名作为表,然后指向列,如此
SELECT o.image_title, o.image_id, COUNT(*)
FROM art a JOIN other_sales o ON (art.id=other_sales.image_id)
GROUP BY (o.image_id)
答案 2 :(得分:0)
是的,我现在看到了。我的原始代码有2个问题。
我应该选择特定的列名而不是使用*
image_id是一个列名,出现在我正在访问的两个表中。这将导致“模棱两可”的错误。
以下是原始代码和更正后的代码:
原: SELECT image_title,image_id,COUNT(other_sales。*)FROM art INNER JOIN other_sales ON(art.image_id = other_sales.image_id)GROUP BY(other_sales.image_id);
校正: SELECT image_title,art.image_id,COUNT(other_sales.image_id)FROM art INNER JOIN other_sales ON(art.image_id = other_sales.image_id)GROUP BY(other_sales.image_id);
感谢您的帮助