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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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