Tableau 2 strong> p> |id|name|address|car_id |
|1 |Alex|US |2 |
|2 |Jaso|Canada |1 |
3 Réponses :
Je soupçonne que cela ne fonctionne pas dans une seule requête. [EDIT: mal, voir autre réponse]
Vous avez 2 exigences différentes pour 2 tables différentes qui n'ont pas de colonne commune. Vous devez trouver le bleu car_id indépendamment de Alexes Row car ils ne sont pas liés de quelque manière que ce soit. P>
Je le ferais comme suit: P>
UPDATE
table1
SET
table.car_id = (
SELECT
car_id
FROM
table2
WHERE
color LIKE 'blue'
)
WHERE
name LIKE 'Alex'
Je soupçonne que tu t'es trompé
Oui, tu as raison. Mais la solution One Dower est plus compliquée que nécessaire sans avantage de performance.
mise à jour FirstTable jointure de fixation sur la deuxième fixation.Color = 'Blue' Set Firsttable.car_id = secondTable.car_id où firstable.car_id est null; p>
J'ai une solution pour un problème similaire avec plus de personnes et plus de voitures. Peut-être qu'il aide DBfiddle exemple
La datatabke de base sont comme suit p >
id name address car_id 1 Alex US 2 2 Jaso Canad a 1 3 Paso Canad a 3 4 Paso danad a 4
Mettre à jour T1 Join T2 sur T2.Color = 'Blue' Ensemble T1.CAR_ID = T2.CAR_ID où t1.car_id est null; code> Vue sur DB FiddleOui, la solution de la fraise a fonctionné! Merci!
Vous devriez le poster comme une réponse pour que je puisse le choisir pour être la réponse!
C'est trop trivial
Votre requête semble être appropriée pour SQL Server - Syntaxe MySQL est une lecture différente sur la syntaxe de plusieurs table: dev.mysql.com/doc/refman/8.0/fr/update.html