Avatar billede rough Nybegynder
07. august 2014 - 19:40 Der er 2 kommentarer

SQL select / delete med inner join

Når jeg laver følgende Select

select *
FROM saleslines
INNER JOIN sale ON saleslines.SaleID = sale.id
WHERE sale.Printet = 0 AND SALE.kort = 0 and saleslines.datetime LIKE '2014-07-13%'

returneres 6 rækker
id      antal  saleid
1000    1    11166
2000    1    11166
3000    1    11166
4000    1    11166
5000    1    11166
6000    1    11166

Hvis jeg derefter laver en delete med følgende:

delete saleslines, sale
FROM saleslines INNER JOIN sale ON saleslines.SaleID = sale.id
WHERE sale.Printet = 0 AND SALE.kort = 0 and saleslines.datetime LIKE '2014-07-13%' and saleslines.id = 1000

Ville jeg antage at den første række blev slettet !!! I mysql workbench returneres 2 rows affected (dette regner jeg med er rækken i sale + saleslines)

Når jeg efterfølgende laver select igen - returneres ingen rækker -  hvad gør jeg forkert??
Avatar billede arne_v Ekspert
08. august 2014 - 01:44 #1
DELETE saleslines
USING sale
WHERE saleslines.SaleID = sale.id AND sale.Printet = 0 AND SALE.kort = 0 and saleslines.datetime LIKE '2014-07-13%' and saleslines.id = 1000

maaske.
Avatar billede arne_v Ekspert
08. august 2014 - 01:45 #2
DELETE t1,t2

sletter raekke ri baade t1 og t2.

DELETE t1 USING t2

sletter kun raekker i t1.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester