现在我有三个mysql表。people
我必须在一张桌子上列出所有的人。在此旁边它显示有兴趣,这是它的 sql。
SELECT *,(
SELECT GROUP_CONCAT(interest_id SEPARATOR ",")
FROM cat_people_interests
WHERE person_id = people.id
) AS cat_interests
FROM people
WHERE id IN
(
SELECT person_id
FROM cat_interests
)
ORDER BY lastname, firstname);
架构
`people` { int:id, varchar:name }
`cat_people_interests` { int:interest_id, int:person_id }
`cat_interests` { int:id, varchar:name }
`alternate_meow_pull` { int:person_id, int:meow_id, int:dataetc, int:dataetc2 }
所以这让我有能力在那里提取名字和所有兴趣。
如果一个人的 id 作为 person_id 在另一个表 (alternate_meow_pull) 中存在,我如何更改或添加到此以检查每行?我个人会做的只是检查每一行的 mysql 查询,但我确信有一种更快、更简洁的方法。顺便说一句,无论这个人是否存在于alternate_meow_pull 中,我都想得到结果。
因此,当我遍历这个结果时,我希望能够打印姓名、id、与人相关的所有兴趣,以及恰好在alternate_meow_pull 中与人相关的任何数据。