我从MySQL数据库中选择用户信息,如下所示:
SELECT * FROM `Users` WHERE `$user_or_id` = ?
但是,我想在返回的数据中添加一些额外的信息。额外的数据是名为“Venues”的表中的记录总数,其中行的字段“user_id”与表中的“id”字段“用户”相同。
请告诉我以下查询出错的地方?这是我收到的错误:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近'*)FROM
Users
AS u INNER JOINVenues
AS v ON u.id = v.user_id WHERE u.id =''在第1行
SELECT u.*, v.count(*) FROM `Users` AS u INNER JOIN `Venues` AS v ON u.id = v.user_id WHERE u.$user_or_id = ?
答案 0 :(得分:3)
SELECT u.*, COUNT(v.*) FROM `Users` AS u INNER JOIN `Venues` AS v ON u.id = v.user_id WHERE u.$user_or_id = ?
COUNT
是MySQL函数,不是表v
的成员。传递一个代表你想要计数的参数 - 在这种情况下,v
的行。
答案 1 :(得分:1)
应该是COUNT(v.*)
。否则它被解释为“表V中的函数计数”,这是无效的。
答案 2 :(得分:1)
只需使用count(*)
代替v.count(*)
。