Je dois mettre à jour toutes les lignes d'une colonne dans une table. Voici ma requête

dba.stackexchange https://dba.stackexchange.com/questions/29276

  •  31-10-2019
  •  | 
  •  

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
scroll top