Hej.. Jeg har et system hvor brugere kan sende breve til hinanden. Til dette bliver der brugt 2 tabeller - "User" og "Letter".
Problemet er, at der er nogle brugere der har slettet der bruger login (altså findes de ikke i "User" mere). Men jeg har desværre glemt at slette de breve som de have i deres indbakke/udbakke.
Dette skal jeg nu have lavet.
I tabellen "Letter" er der en "Tilbruger" og en "Frabruger". i tabellen "User" har alle et unikt id kaldet "ID"
Det som skal selectes er hvor - tilbruger og frabruger ikke findes i dateuser
men jeg kan ikke rigtigt få min sql sætning til at makke ret. det som jeg har lavet indtil nu ser således ud
select distinct dateletter.id as sletid, dateletter.tilbruger, dateletter.frabruger from dateletter, dateuser where ((dateletter.tilbruger <> dateuser.id) and (dateletter.frabruger <> dateuser.id))
men den tager åbenbart ikke hensyn til where sætningen
You want to select all rows from table1 which don't exist in table 2? Example: table1.id = list(1, 2, 3, 4, 5) table2.id = list(1, 2, 5) You want to have 3 and 4 as the result cause they are not in table 2? Use the OUTER JOIN: SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id WHERE table2.id IS NULL
jeps.. den virker næsten.. problemet er bare, at den ikke kontrollere i begge felter første gang. dvs. at den selecter kun både "tilbruger" og "frabruger" ikke findes i "dateuser".
kan man på nogen måde få den til at "joine" på begge felter ?
arghh.. mig og mine stavefejl.. jeg prøver lige igen..
jeps.. den virker næsten.. problemet er bare, at den ikke kontrollere i begge felter første gang. dvs. den skal kun selecte hvis både "tilbruger" og "frabruger" ikke findes i "dateuser".
kan man på nogen måde få den til at "joine" på begge felter ?
Det her er et gæt =) SELECT dateletter.* FROM dateletter LEFT JOIN dateuser ON dateletter.frabruger=dateuser.id AND dateletter.tilbruger=dateuser.id WHERE dateuser.id IS NULL
SELECT dateletter.id as sletid, dateletter.tilbruger, dateletter.frabruger, dateuser1.id, dateuser2.id FROM dateletter LEFT JOIN dateuser AS dateuser1 ON dateuser1.id = dateletter.tilbruger LEFT JOIN dateuser AS dateuser2 ON dateuser2.id = dateletter.frabruger where dateuser1.id IS NULL and dateuser2.id IS NULL
Synes godt om
Ny brugerNybegynder
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.