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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.