Requête mysql pour joindre trois tables
Je suis l'aide de cette requête:
SELECT a.sales_id, d.bus_title, a.cat_id
FROM tbl_sales a
INNER JOIN tb_category b ON a.cat_id = b.cat_id
INNER JOIN tbl_business d ON d.bus_id = a.bus_id
qui produit ce résultat:
sales_id | bus_title |cat_id
---------- | ---------------- | ------------
1 | Business 1 | 6
2 | Business 12 | 12
3 | Business 123 | 25
J'ai changé le champ cat_id dans une nouvelle table nommée tb_sales_category
qui contient les champs sales_category_id
sales_id
cat_id
. Comment puis-je écrire une nouvelle requête en adhérant à cette table aussi à, obtenir le même résultat que ci-dessus?
Je suis un peu nouveau sur les bases de données, besoin d'aide. Merci d'avance
source d'informationauteur Jimmy M
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
L'idée est assez simple, le premier champ dans votre nouvelle table
tb_sales_category
qui estsales_category_id
fonctionne comme un clé de substitutionil n'a rien à voir avec les relations entre les deux autres tables. Puis nous arrivons aux deux autres domaines qui sontsales_id
cat_id
ces ce que vous devez mapper les deux autres côtés de la les relations.Vous ne pouvez pas
Join tb_category b ON a.cat_id = b.cat_id
sur le nouveau schéma, car nous n'avons plusa.cat_id
et voici le nouveau tableautb_sales_category
rôle, en l'insérant avec la liaison de deux côtés, l'un avecINNER JOIN tb_category b ON s.cat_id = b.cat_id
et l'autre avecINNER JOIN tb_sales_category s ON a.sales_id = s.sales_id
nous devrions faire.Espérons que cela a du sens.
Je ne suis pas un grand fan de jointures internes alors essayez ceci: