来自4个表的SQL查询

时间:2012-02-21 09:52:59

标签: 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 = '???????'))

2 个答案:

答案 0 :(得分:0)

试试这个:

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都在categories c中,因此您也可以删除where子句中的子查询。您还需要加入JOIN表。

您需要选择left类型INNER ot {{1}},具体取决于您从表中选择的数据。

答案 1 :(得分:0)

您似乎缺少某些联接定义。

四张桌子:

<强>文章

  • ID
  • 名称
  • 描述
  • ID_Pic
  • 日期

<强>分类

  • id_cat
  • name_cat

<强>子类别

  • id_subcat
  • name_subcat
  • id_cat

<强>图片

  • id_pic
  • 图像,

我们需要了解Category / Subcategory与文章的关系。文章是否有与您遗失的链接的类别?

当你能得到我这些答案时,我可以为你完成一个加入过程。

编辑:我看到了丢失的字段。请忽略,我上面的答案很好。

此致 杰森