J'utilise 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
ce 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 en une nouvelle table nommée tb_sales_category
qui contient les champs sales_category_id
, sales_id
, cat_id
. Comment puis-je écrire la nouvelle requête en joignant également cette table pour obtenir le même résultat que ci-dessus?
Je suis un peu nouveau dans les bases de données, j'ai besoin d'aide. Merci d'avance
Essaye ça:
SELECT a.sales_id, d.bus_title, s.cat_id
FROM tbl_sales a
INNER JOIN tb_sales_category s ON a.sales_id = s.sales_id
INNER JOIN tbl_business d ON a.bus_id = d.bus_id
INNER JOIN tb_category b ON s.cat_id = b.cat_id
L'idée est assez simple, le premier champ de votre nouvelle table tb_sales_category
lequel est sales_category_id
fonctionne comme clé de substitution, cela n'a rien à voir avec les relations entre les deux autres tables. Ensuite, nous arrivons aux deux autres domaines qui sont sales_id
, cat_id
, ce que vous devez mapper aux deux autres côtés des relations.
Vous ne pouvez pas Join tb_category b ON a.cat_id = b.cat_id
sur le nouveau schéma parce que nous n'avons plus a.cat_id
, et voici la nouvelle table tb_sales_category
rôle, en l'insérant avec deux côtés de reliure, un avec INNER JOIN tb_category b ON s.cat_id = b.cat_id
et l'autre avec INNER JOIN tb_sales_category s ON a.sales_id = s.sales_id
nous devrions avoir terminé.
J'espère que cela a du sens.
Je ne suis pas un grand fan des jointures internes, alors essayez ceci:
SELECT a.sales_id, a.cat_id, c.bus_title
FROM tb_sales_category a, tb_sales b, tbl_business c
WHERE a.sales_id = b.sales_id
AND b.bus_id = c.bus_id