如何在两个以上的表上执行Sql Join Query?

时间:2014-03-08 16:47:28

标签: asp.net sql

我有一个名为“tbl_category”的表,其中包含以下字段:

category_id int auto_increment primary key,
category_title varchar(max),
category_description varchar(max) //is the foreign key in "tbl_sub_category"

另一个表是“tbl_sub_category”,其中包含以下字段:

sub_category_id int auto_increment primary key,
sub_cateogry varchar(max),
cateogry_id int auto_increment

现在,我想显示sub_category及其对应的category_title。可以帮助我吗?

4 个答案:

答案 0 :(得分:0)

使用此查询

SELECT c.category_title, s.sub_category
FROM tbl_category c
INNER JOIN tbl_sub_category s ON c.category_id = s.category_id

答案 1 :(得分:0)

SELECT sub_category,category_title FROM tbl_category,tbl_sub_category 
 WHERE tbl_category.category_id=tbl_sub_category.category_id;

答案 2 :(得分:0)

这是对前一个查询的一个小修改,如果对应于子类别表中的条目可用的每个类别,则先前的查询将正常工作。如果不是这种情况,请使用外部联接。

SELECT c.category_title,s.sub_category 来自tbl_category c LEFT OUTER JOIN tbl_sub_category s ON c.category_id = s.category_id

子类别表中的CategoryID不能自动递增。

答案 3 :(得分:0)

SELECT
    s.sub_category_id,
    s.sub_cateogry,
    c.category_title
FROM
    tbl_sub_category s
INNER JOIN
    tbl_category c
    ON s.cateogry_id = c.category_id

上面的示例将只显示tbl_sub_category中tbl_category中具有相应外键的项目。 INNER JOIN声明只返回具有外键关系的行,而FROM以tbl_sub_category开头,这确保我们只查看子类别。您可以轻松地反转这两个,以便FROM位于tbl_category上,INNER JOIN位于tbl_sub_category上,这将产生相同的结果,但在此示例中,您更明确地表示您对子类别感兴趣而不是类别。