我是SQL中的Noob。SQL简单内部加入
伊夫3表:
TB_ITEM
{
TB_ITEM_ID int primary key,
TB_ITEM_CAT_ID int,
TB_ITEM_SUBCAT_ID int,
TB_ITEM_NAME varchar(350)
add constraint FK_ITEM_CAT foreign key(TB_ITEM_CAT_ID)
references TB_ITEM_CAT(TB_ITEM_CAT_ID),
add constraint FK_ITEM_SUBCAT foreign key(TB_ITEM_SUBCAT_ID)
references TB_ITEM_SUBCAT(TB_ITEM_SUBCAT_ID)
}
TB_ITEM_CAT
{
TB_ITEM_CAT_ID int primary key,
TB_ITEM_CAT_NAME varchar(350)
}
TB_ITEM_SUBCAT
{
TB_ITEM_SUBCAT_ID int primary key,
TB_ITEM_CAT_ID int,
TB_ITEM_SUBCAT_NAME
add constraint FK_CAT foreign key(TB_ITEM_CAT_ID)
references TB_ITEM_CAT(TB_ITEM_CAT_ID)
}
TABLE “TB_ITEM” HAS 416个记录。
我用尽,请查询:
select a.TB_ITEM_NAME, b.TB_ITEM_CAT_NAME, c.TB_ITEM_SUBCAT_NAME from
TB_ITEM a inner join
TB_ITEM_CAT b on a.TB_ITEM_CAT_ID = b.TB_ITEM_CAT_ID
inner join TB_ITEM_SUBCAT c
on a.TB_ITEM_SUBCAT_ID = c.TB_ITEM_SUBCAT_ID
和结果是:1162个结果
我的意思是:我只想检索从TB_ITEM那些416点的记录及其类别名字和子目录名称 来自TB_ITEM_CAT和TB_ITEM_SUBCAT
此查询是错误的吗?为什么1162记录只代替416?
任何意识?
如果'TB_ITEM'有多行'TB_ITEM_SUBCAT_ID'具有相同的条目,那么它们将与'TB_ITEM_SUBCAT_NAME'中的相同名称的列匹配多次。乍一看,这可能是问题。 – 2011-10-04 21:36:55
尝试在查询结尾添加一个由1,2,3组组成的组。问题可能是你有重复的行。 – 2011-10-04 21:43:22
与分组,结果计数是1152. -10 – ozsenegal