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?
Merci pour votre aide!
3 réponses
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.
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
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;
De nouvelles questions
mysql
MySQL est un système de gestion de base de données relationnelle (RDBMS) gratuit et open source qui utilise SQL (Structured Query Language). N'UTILISEZ PAS cette balise pour d'autres bases de données telles que SQL Server, SQLite, etc. Ce sont des bases de données différentes qui utilisent toutes leurs propres dialectes SQL pour gérer les données.