J'ai une question sur la fusion d'une table avec une autre en préservant un identifiant sur une base de données (j'utilise MySQL). J'ai 2 tables, la première a un ID d'article et une catégorie et une sous-catégorie affectées à cet ID. Le second a un ID d'élément avec toutes ses caractéristiques comme le nom et d'autres variables. Comment puis-je fusionner ces deux tables de manière à ce que l'ID corresponde à l'élément correct dans la nouvelle table (c'est la partie difficile je pense)? C'est possible? Veuillez consulter ce lien pour voir une image descriptive de ce que je dois faire, car je ne peux pas insérer d'images directement

Merci pour votre aide!

1
eera5607 23 nov. 2017 à 22:48

3 réponses

Meilleure réponse

C'est une opération très basique appelée Inner Join:

Select *
from table1
inner join table2
on table1.itemid = table2.itemid; 

EDIT: Comme OP veut créer une nouvelle table avec les champs renvoyés par la requête ci-dessus et insérer des données dans la table nouvellement créée; Voici la requête pour insérer des données une fois qu'elles ont été créées:

Insert into tablename
Select *
from table1
natural join table2; 

Remarque: assurez-vous que l'ordre et les types de données des colonnes dans la nouvelle table et dans le résultat de la requête de sélection ci-dessus doivent être identiques.

1
Harshil Doshi 24 nov. 2017 à 04:32

Cela fera:

Sélectionnez a. *, b.ItemName, b.ItemChar1, b.ItemChar2 de FirstTable une jointure sélectionnez * de SecondTable b sur a.ItemId = B.ItemId;

Utilisez la jointure gauche si certains des enregistrements ne figurent pas dans la deuxième table

1
Shiv Yadav 24 nov. 2017 à 05:25

Je suppose que vous souhaitez créer un tableau à partir des résultats combinés. Consultez cette page pour plus de détails.

En gros, vous écrivez et testez la requête SQL, puis CREATE TABLE nom_table AS sql_query

create table new_item_table
as
select
  a.item_id,
  a.category,
  a.subcategory,
  b.item_name,
  b.item_char_1,
  b.item_char_2
from
  item_category a inner join item_char b on a.item_id = b.item_id;
1
PatrickSJ 23 nov. 2017 à 20:00
47462492