WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Mysql Delete fråga (https://www.wn.se/forum/showthread.php?t=1038576)

Fia 2009-10-15 08:33

Mysql Delete fråga
 
Hej!

Jag behöver ta bort rader där tabellens id inte fins i en annan tabell och timestamp är < än min varable timestamp.
Jag prova detta men det fungerar inte:

DELETE FROM tblkund WHERE kundId NOT IN (SELECT kundId FROM tblorder) AND timestamp<'".$timestamp."'
"
Och detta;

DELETE FROM tblkund
WHERE NOT EXISTS (SELECT * FROM tblorder WHERE kundId = tblkund.kundId) AND timestamp<'".$timestamp."'"

Något tips?

Tackar på förhand!

allstars 2009-10-15 08:42

den översta ser mest rätt ut, men räcker det inte med
"DELETE FROM tblkund WHERE kundId NOT IN (SELECT kundId FROM tblorder) AND timestamp<'$timestamp'; "

Får du något felmeddelande?

Fia 2009-10-15 09:16

Ja, men lite obegriplig för mig
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #706' at line 1

eliasson 2009-10-15 10:12

Läs om MySQL Subqueries.
http://dev.mysql.com/doc/refman/5.1/en/subqueries.html

Fia 2009-10-15 12:19

Så här blev det, Vet inte varför den andra inte ville.
DELETE
FROM tblkund
WHERE kundId <> ALL (
SELECT kundId
FROM tblorder
)
AND timestamp < $timestamp"

SimonP 2009-10-15 20:55

Det var troligtvis ett php-kodningsfel du gjort, och inte ett fel i själva SQL-queryn.

Resource-id#-fel brukar tyda på att man skickar in en resultset eller en array inuti en mysql_query, vilket inte fungerar.

Conny Westh 2009-10-16 00:43

Citat:

Ursprungligen postat av allstars (Inlägg 20326499)
den översta ser mest rätt ut, men räcker det inte med
"DELETE FROM tblkund WHERE kundId NOT IN (SELECT kundId FROM tblorder) AND timestamp<'$timestamp'; "

Får du något felmeddelande?

Lite tydligare upställning men annars "perfect code", enkel och tydlig, precis som det ska vara:

Kod:

DELETE FROM tblkund
WHERE kundId NOT IN (
                                  SELECT kundId
                                  FROM tblorder
                              )
                              AND timestamp<'$timestamp';



Alla tider är GMT +2. Klockan är nu 20:18.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson