Je suis Noob en SQL.SQL Simple Inner Join
Ive 3 tables:
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 RECORDS.
Ive a essayé, suivre la requête:
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
et le résultat est: 1162 résultats
Je veux dire: Je veux récupérer uniquement les 416 dossiers de TB_ITEM et ses CATÉGORIES NOMS ET SOUS-CATÉGORIES NOM à partir de TB_ITEM_CAT et TB_ITEM_SUBCAT
Cette requête est-elle incorrecte Pourquoi 1162 enregistrements à la place seulement 416?
Un idéias?
S'il y a plusieurs lignes de 'TB_ITEM' qui ont la même entrée pour' TB_ITEM_SUBCAT_ID', alors elles vont correspondre plusieurs fois avec la colonne du même nom dans 'TB_ITEM_SUBCAT_NAME'. En un coup d'œil, c'est probablement le problème. –
Essayez d'ajouter un 'group by 1,2,3' à la fin de votre requête. Le problème pourrait être que vous avez des lignes en double. –
avec group by, le nombre de résultats est de 1152. -10 – ozsenegal