Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hjälp med lite SQL tack

Postades av 2006-06-08 07:35:24 - Rickard Wallén, i forum sql-server/msde, Tråden har 8 Kommentarer och lästs av 760 personer

Jag behöver köra delete ur en tabell.
Förutsättningar: Jag vill ta bort de poster (x och y) ut tabell a som inte finns med i tabbel b. Det vill säga. Ta bort x och y ur a för de om det inte finns motsvarande i b.

Jag började med att göra en select som skall. Jag kom fram till hur jag tar ut de som lika.
SELECT A.X, A.Y
FROM A
INNER JOIN B
ON A.X = B.X and A.Y = B.Y

Det där visar alltså de värden (x och y) som finns i båda tabellerna. Men nu vill jag ta fram de i a som inte finns i b för at slutligen även göra som den till en delete.

Hjälp någon?


Svara

Sv: Hjälp med lite SQL tack

Postades av 2006-06-08 08:04:28 - Johan Djupmarker

Borde fungera såhär. Dock inte vidare effektivt då det kräver en fråga för varje post i A. Har tyvärr inte tid att fundera vidare på det nu...

DELETE FROM A WHERE (SELECT COUNT(0) FROM B WHERE X=A.X AND Y = A.Y) = 0

/Johan


Svara

Sv:Hjälp med lite SQL tack

Postades av 2006-06-08 08:27:07 - Rickard Wallén

Njae... det där genererar fel, men tack ändå!

Jag funderar vidare och ser samtidigt fram emot fler förslag :-)


Svara

Sv: Hjälp med lite SQL tack

Postades av 2006-06-08 09:38:41 - Johan Djupmarker

Berätta gärna vad du får för fel...

/Johan


Svara

Sv: Hjälp med lite SQL tack

Postades av 2006-06-08 10:21:35 - Thomas Vanhaniemi

Hur har du designat databasen om du måste radera rader i en tabell för att göra den identisk med en annan?

Men en snabb lösning skulle kunna vara
<code>
DELETE FROM a WHERE (SELECT COUNT(0) FROM b WHERE b.x = a.x AND b.y = a.y) = 0
</code>
Dock är den troligen inte så hemskt optimal.


Svara

Sv:Hjälp med lite SQL tack

Postades av 2006-06-08 10:33:29 - Rickard Wallén

Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near 'a'.
Server: Msg 170, Level 15, State 1, Line 1
Line 1: Incorrect syntax near '='.

Har provat vidare lite och kommit fram till följande. Vad sägs?

Delete FROM A
WHERE NOT EXISTS
(SELECT X, Y FROM B
WHERE A.X = B.X
AND A.Y = B.Y)

/Rickard


Svara

Sv:Hjälp med lite SQL tack

Postades av 2006-06-08 10:35:43 - Rickard Wallén

Thomas: Det är inte jag som har designat DB:n, tyvärr ;)


Svara

Sv: Hjälp med lite SQL tack

Postades av 2006-06-08 11:33:04 - Johan Djupmarker

Det är samma princip som min fast du har använt exists istället. Fungerar det? I sådana fall är det väl bara att köra! :)

/Johan


Svara

Sv:Hjälp med lite SQL tack

Postades av 2006-06-08 12:43:16 - Rickard Wallén

Japp! Den verkar fungera alldeles utmrärkt.
Kände mig dock lite osäker och fick köra lite kollar. Den får rulla tills appen når testfasen :D

Tackar för hjälpen!!
/Rickard


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
5 796
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies