Je dois mettre à jour toutes les lignes d'une colonne dans une table. Voici ma requête
Question
Donc mes tables sont
Personnes:
People_name(VARCHAR 100),
People_id (INT, PRIMARY KEY AUTO INCREMENT)
Des pistes:
Track_id(INT PRIMARY KEY),
People_id_references (int ,Foreign key references People(people_id)),
Track_title(VARCHAR 100)
Top 100:
artist varchar(100),
id(int, primary key),
track_title(varchar100)
Toutes les colonnes des tables ci-dessus ont des valeurs, sauf dans People_ID_References (c'est dans tracks
table). top100
a de nombreuses autres colonnes, mais pour plus de clarté, je ne les ai pas mentionnées, et il n'est pas lié à people
ou tracks
les tables. Les données de top100
est présent dans track
et people
Tables, cela se fait à l'aide de quelques requêtes d'insertion. Je veux importer des valeurs à partir de people_id
(c'est dedans People
table).
Donc ma requête est:
UPDATE tracks
SET People_id_Reference = (SELECT People_id
FROM People
RIGHT JOIN top100
ON
People_name=top100.artist LIMIT 1)
WHERE People_id_Reference IS NULL;
Mais cela insère la même chose people_id
dans toutes les rangées de People_id_Reference
. Est-ce qu'il y a un autre moyen?
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange