php - 比较 id 与不同表行 mysql 的 id

标签 php mysql

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

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 的人。该表只有 id、person_id、team_id 和日期字段。

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 columns 'volleyballplayers.person_id' in 'where Clause'我非常确定表的名称,并且我知道该列名为 person_id。

最佳答案

尝试将其与子查询连接起来,

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

关于php - 比较 id 与不同表行 mysql 的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12736376/

相关文章:

php - 无法登录 Php MySQL android

php - 测验的数据库结构是什么样的?

php - 如何在 Controller 中正确执行 symfony2 中的 If 语句

MySQL:向表中插入 25,000,000 个代码

mysql - 如何将所有数据库表从一个模式复制到同一服务器上的另一个模式?

php - Codeigniter 数据中的 MySQL 函数

php - 无法通过 http 将 base64 图像内容 POST 到 PHP 服务器

带有变量的 php foreach

php - 按升序打印表值

mysql - MySQL配置文件中哪些文件具有最高优先级?