0

如何让 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 
4

1 回答 1

0

尝试别名表。

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 
于 2013-09-23T13:00:25.867 回答