15. august 2008 - 20:06
Der er
11 kommentarer og 2 løsninger
Join agtigt
Jeg har T1.ID T1.Deleted Og T2.ID T2.Deleted T2.T1ID Jeg skal ha´ lavet et join, - men fatter det ikke helt.! Hvis T1.Deleted er 1, skal jeg ikke ha´ nogle data overhovedet. Men hvis T1.Deleted = 0 Skal jeg ha´ den post ud samtidig med alle T2.ID hvor T2.Deleted = 0 Hvis det er ikke er nogen poster i T2, - skal jeg stadig ha posten i T1. (Hvis T1.Deleted = 0). T2.T1ID peger selvfølgelig på T1.ID Compilos
Annonceindlæg fra IFS Danmark A/S
15. august 2008 - 20:12
#1
prøv: SELECT * FROM t1 LEFT JOIN t2 ON t2.t1id=t1.id WHERE t1.deleted=0 AND (t2.id IS NULL OR t2.deleted = 0)
15. august 2008 - 20:36
#2
Virker ikke, - jeg får ikke nogen post fra t1. Selv om der ikke er nogen post i t2, vil jeg gerne stadig ha´ en post fra T1
15. august 2008 - 20:40
#3
Og du huskede LEFT ?
15. august 2008 - 20:45
#4
Ja, har lige tjekket det helt igennem igen.! :-(
Slettet bruger
15. august 2008 - 21:24
#5
Hjælper det hvis du erstatter LEFT JOIN med LEFT OUTER JOIN?
15. august 2008 - 22:41
#6
Næ, - heller ik! Måske er dette lidt simpler: Jeg skal Ha´ rækken T1.ID = 7 Og hvis der findes noget i T2.T1ID = T1.ID (fra tabel T1 vil da kun være 1 post, i T2 kan der være flere poster).
16. august 2008 - 18:14
#7
t2.t1id = t1.id - du beder om at disse skal være ens, men har de samme datatype? Er du sikker på at t1.deleted=0, og ikke NULL?
16. august 2008 - 18:16
#8
- og er det mssql, og ikke mysql?
19. august 2008 - 00:07
#9
arnes svar bør give det rigtige resultat hvis du har skrevet det nøjagtigt som han skriver det (inklusive paranteser). Men du kunne evt. prøve at flytte t2.deleted kriteriet op på ON sektionen. Burde være det samme, men... SELECT * FROM t1 LEFT JOIN t2 ON t2.t1id=t1.id AND t2.Deleted=0 WHERE t1.Deleted=0
19. august 2008 - 22:30
#10
Hejsa, - fik løst problemet idag. Kan ikke huske 100 %, men mener kjulius var tættest :-) Læg et svar alle sammen og tak for hjælpen /Compilos
19. august 2008 - 23:00
#11
.
Slettet bruger
20. august 2008 - 11:06
#12
.
20. august 2008 - 22:08
#13
Tak for hjælpen
Computerworld tilbyder specialiserede kurser i database-management