【问题标题】:SQLite SELECT query - GROUP CONCAT column based on another column's valueSQLite SELECT 查询 - 基于另一列值的 GROUP CONCAT 列
【发布时间】:2013-09-23 12:50:56
【问题描述】:

如何让 GROUP CONCAT 运算符中的 WHERE 依赖于查询中的另一列?在这种情况下,需要发生的是score_list 的值取自相关候选人的分数。在 MySQL 中,我可以通过使用别名(SELECT Candidate_id as id .... WHERE scores.candidate_id = id ...)来使用它,在 SQLite 中我得到“没有这样的列”。

SELECT candidate_id, 
        first_name || ' ' || last_name AS 'name',
        (
            SELECT GROUP_CONCAT(score) 
            FROM scores 
            WHERE scores.candidate_id = *NEEDS TO BE CANDIDATE_ID* 
                AND scores.category_id = 1 
            ORDER BY scores.judge_id
        ) AS score_list
FROM scores 
    JOIN candidates 
        ON candidates.id = scores.candidate_id 

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    尝试为您的表设置别名。

    SELECT oute.candidate_id, 
            oute.first_name || ' ' || oute.last_name AS 'name',
            (
                SELECT GROUP_CONCAT(inne.score) 
                FROM scores inne
                WHERE inne.candidate_id = oute.candidate_id
                    AND inne.category_id = 1 
                ORDER BY inne.judge_id
            ) AS score_list
    FROM scores oute 
        JOIN candidates 
            ON candidates.id = oute.candidate_id 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 2020-09-26
      • 2014-06-30
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多