0

所以我试图从某人那里检索所有兴趣,并能够列出它们。这适用于以下查询。

SELECT *,(
    SELECT GROUP_CONCAT(interest_id SEPARATOR ",")
    FROM people_interests
    WHERE person_id = people.id
) AS interests
FROM people
WHERE id IN (
    SELECT person_id
    FROM people_interests
    WHERE interest_id = '.$site->db->clean($_POST['showinterest_id']).'
)
ORDER BY lastname, firstname

在我遇到问题的这个问题中,我只想选择那些恰好在名为volleyballplayers. 该表只有一个 id、person_id、team_id 和 date 字段。

SELECT *,(
    SELECT GROUP_CONCAT(interest_id SEPARATOR ",")
    FROM people_interests
    WHERE person_id = people.id
) AS interests
FROM people
WHERE id IN (
    SELECT person_id
    FROM people_interests
    WHERE volleyballplayers.person_id = person_id
)
ORDER BY lastname, firstname

我只是想确保只有 volleyballplayers 表中的人出现,但我收到一条错误消息,Unknown column 'volleyballplayers.person_id' in 'where clause'虽然我很确定表的名称并且我知道该列名为 person_id。

4

1 回答 1

1

尝试用子查询加入它,

SELECT  *, GROUP_CONCAT(interest_id) interests
FROM    people a
        INNER JOIN people_interests b
            ON b.person_id = a.id
        INNER JOIN
        (
            SELECT DISTINCT person_id
            FROM volleyballplayers
        ) c ON b.person_id = c.person_id
GROUP BY a.id
ORDER BY lastname, firstname
于 2012-10-04T21:46:43.170 回答