我有三个表:帖子, cat_collection 和 cat_mapping
帖子包含您希望在名为帖子的表格中看到的字段
ID,类型,标题,正文,作者,电子邮件,日期等。
cat_collection 包含 ID,名称,说明
cat_mapping 包含* id,collection_id,post_id *
我目前有两个查询,第一个查询来自帖子的信息,第二个查询从 cat_collection 和 cat_mapping <检索相关类别/ p>
的第一 的
SELECT post.id, post.type, post.title, post.body, post.date, post.author, post.email
FROM posts AS post
WHERE post.id = 1
的第二 的
SELECT cat.name
FROM cat_collection AS cat
LEFT JOIN cat_mapping AS map ON map.collection_id = cat.id
WHERE map.post_id = 1
有没有办法通过一个查询返回所有帖子信息以及相关类别列表?
答案 0 :(得分:1)
如果我了解您的数据模型,您只需要另一个左连接。您可能希望重新排序连接以确保查询有效并返回正确的数据。
SELECT
posts.id,
posts.type,
posts.title,
posts.body,
posts.date,
posts.author,
posts.email,
cat.name
FROM
posts
LEFT JOIN
cat_mapping AS map ON map.post_id = posts.id
LEFT JOIN
cat_collection AS collection ON map.collection_id = collection.id
WHERE
posts.id = 1
请仔细考虑您的别名。将“帖子”别名化为“帖子”是愚蠢的。将“cat_collection”别名化为cat令人困惑 - 该表是关于猫的集合,而不是猫。