2011-10-19 72 views
0

我有三个表:帖子cat_collection,并cat_mapping
帖子包含字段,你希望在一个名为表看帖子 ID,类型,标题,正文,作者,电子邮件,日期等..如何将这两个查询合并成一个

cat_collection包含ID,名称,描述

cat_mapping包含* ID,collection_id,POST_ID *

我现在有两个查询,第一个选择来自的信息,所述第二从检索相关类别cat_collectioncat_mapping

第一

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 

有没有办法返回所有的职位信息,以及相关的类别与单个查询列表?

回答

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”令人困惑 - 表格是关于猫的集合,而不是猫。