MySQL 使用 JOIN 和 GROUP_CONCAT
Posted
技术标签:
【中文标题】MySQL 使用 JOIN 和 GROUP_CONCAT【英文标题】:MySQL using JOIN and GROUP_CONCAT 【发布时间】:2012-07-28 02:42:14 【问题描述】:努力让这个查询工作:
$query_search = "SELECT questionnaires_index.id, questionnaires_index.ea_num, questionnaires_index.address, questionnaires_index.status, questionnaires_index.json_stored users.username FROM questionnaires_index INNER JOIN users ON questionnaires_index.interviewer_id = users.id WHERE questionnaires_index.interviewer_id IN (SELECT GROUP_CONCAT(id) FROM users WHERE supervisor = (SELECT id FROM users WHERE username = '".$username."'))";
收到此错误:
查询错误:。您的 SQL 语法有错误;检查 与您的 mysql 服务器版本相对应的手册 '.username FROM questions_index INNER JOIN 附近使用的语法 users ON users.id = 第 1 行的问卷调查
查询一直有效,直到我使用 JOIN 语句将 users.username 添加到结果集中。请帮忙。
【问题讨论】:
【参考方案1】:你漏掉了一个逗号
$query_search = "选择问卷调查表_index.id、问卷调查表索引.ea_num、问卷调查表索引.地址、问卷调查表索引状态、问卷调查表索引.json_stored、users.username FROM问卷调查表_索引INNER JOIN用户在问卷调查表_index.interviewer_id = users.id WHERE问卷调查表.interviewer_id IN ( SELECT GROUP_CONCAT(id) FROM users WHERE supervisor = (SELECT id FROM users WHERE username = '".$username."'))";
【讨论】:
天哪。这就是经过数小时努力使此查询正常工作后发生的情况。【参考方案2】:您似乎忘记在问卷调查表_index.json_stored 和 users.username 之间加逗号。
$query_search = "SELECT questionnaires_index.id, questionnaires_index.ea_num, questionnaires_index.address, questionnaires_index.status, questionnaires_index.json_stored ,users.username FROM questionnaires_index INNER JOIN users ON questionnaires_index.interviewer_id = users.id WHERE questionnaires_index.interviewer_id IN (SELECT GROUP_CONCAT(id) FROM users WHERE supervisor = (SELECT id FROM users WHERE username = '".$username."'))
【讨论】:
以上是关于MySQL 使用 JOIN 和 GROUP_CONCAT的主要内容,如果未能解决你的问题,请参考以下文章
Mysql 多表连接查询 inner join 和 outer join 的使用