Requête DELETE avec jointure
Bon j'ai fait une requête SQL pour effacer une ligne dans une table d'association. Cependant je ne peu pas croire qui n'y a pas plus simple que ceci :
SQL : Microsoft SQL CE
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
DELETE
FROM vehasssection
WHERE ID_Vehlisting =
(
SELECT vehasssection.ID_Vehlisting
FROM vehasssection
JOIN vehlocation ON vehlocation.ID = vehasssection.ID_Location
JOIN vehsection ON vehsection.ID = vehasssection.ID_Section
JOIN vehposition ON vehposition.ID = vehasssection.ID_Position
WHERE vehasssection.ID_Vehlisting = '3'
AND vehlocation.Name = 'Exterior'
AND vehsection.Name = 'LeftFront'
AND vehposition.Name = 'Fender'
)
AND ID_Location =
(
SELECT vehasssection.ID_Location
FROM vehasssection
JOIN vehlocation ON vehlocation.ID = vehasssection.ID_Location
JOIN vehsection ON vehsection.ID = vehasssection.ID_Section
JOIN vehposition ON vehposition.ID = vehasssection.ID_Position
WHERE vehasssection.ID_Vehlisting = '3'
AND vehlocation.Name = 'Exterior'
AND vehsection.Name = 'LeftFront'
AND vehposition.Name = 'Fender'
)
AND ID_Section =
(
SELECT vehasssection.ID_Section
FROM vehasssection
JOIN vehlocation ON vehlocation.ID = vehasssection.ID_Location
JOIN vehsection ON vehsection.ID = vehasssection.ID_Section
JOIN vehposition ON vehposition.ID = vehasssection.ID_Position
WHERE vehasssection.ID_Vehlisting = '3'
AND vehlocation.Name = 'Exterior'
AND vehsection.Name = 'LeftFront'
AND vehposition.Name = 'Fender'
)
AND ID_Position =
(
SELECT vehasssection.ID_Position
FROM vehasssection
JOIN vehlocation ON vehlocation.ID = vehasssection.ID_Location
JOIN vehsection ON vehsection.ID = vehasssection.ID_Section
JOIN vehposition ON vehposition.ID = vehasssection.ID_Position
WHERE vehasssection.ID_Vehlisting = '3'
AND vehlocation.Name = 'Exterior'
AND vehsection.Name = 'LeftFront'
AND vehposition.Name = 'Fender'
) |
Je trouve cela gros pour une simple supression de ligne.