来自4个表格的sql查询
我是初学者,我需要帮助!!!!!来自4个表格的sql查询
我有一个数据库:
文章:
id, name, description, id_pic, lang, date
类别:
id_cat, name_cat
图片:
id_pic, image
sub_cat:
id_subcat, name_subcat, id_cat
,我需要选择name, desc, image, name_subcat
这对
SELECT
a.id, a.name, a.desc, sc.name_subcat, p.picture, a.id_subcat
FROM
article a, subcategory sc
LEFT JOIN
pictures p ON a.id_pic = p.id_pic
WHERE
a.id_subcat = sc.id_subcat
AND a.id_subcat IN (SELECT sc.id_subcat
FROM subcategory sc
WHERE id_cat = (SELECT id_cat
FROM category
WHERE name_cat = '???????'))
试试这个:
SELECT a.id, a.name, a.desc,
sc.name_subcat, p.picture, a.id_subcat
FROM article a,
LEFT JOIN subcategory sc ON a.id_subcat = sc.id_subcat
LEFT JOIN categories c ON sc.id_cat = c.id_cat
LEFT JOIN pictures p ON a.id_pic = p.id_pic
WHERE c.name_cat = '??????'
刚刚加入表subcategory
与其他表,而不是where a.id_subcat = sc.id_subcat
。此连接将确保任何a.id_subcat
位于subcategory
,因此您可以摆脱where子句中的子查询。您还需要加入表。
您需要选择JOIN
类型,无论是left
还是INNER
,这取决于您要从表格中选择的数据。
我不确定他们的查询需要哪种连接类型:)但值得一提的是,在WHERE子句中使用'c.name_cat'会否定'categories c'上的外连接。 – Leigh 2012-02-21 19:24:41
您似乎缺少一些连接定义。
四个表:
文章:
- ID
- 名称
- 说明
- ID_Pic
- 郎
- 日期
类别:
- id_cat
- name_cat
子目录:
- id_subcat
- name_subcat
- id_cat
图片:
- id_pic
- 图像,
我们需要看到的类别/子类别如何与文章。文章是否有与他们缺少关系的类别?
当你可以得到我这些答案我可以通过一个加入过程为你。
编辑:我看到缺少的字段。请忽略,上面的答案很好。
问候, 杰森
文章还有一个字段:id_subcat – 2012-05-14 08:44:59
你在使用MSSQL 2008年,2005年MSSQL,MSSQL 2000或MySQL等? – Arion 2012-02-21 09:54:59
你在找什么?什么标准? – 2012-02-21 10:01:35