Avatar billede gadebarnet Nybegynder
21. november 2004 - 15:59 Der er 15 kommentarer og
1 løsning

sqk spørgsmål..

Jeg har 2 tabeller:

tbl_profil
tbl_pic

Jeg skal så have alle profiler som eksistere i tbl_pic først og derefter dem som ikke gør...

tbl_profil.str_id er tbl_pic.str_bruger_id

Og hver profil skal selvføgelig kun komme 1 gang.

HJÆLP
Avatar billede arne_v Ekspert
21. november 2004 - 16:03 #1
Vi skal vel over i noget a la:

SELECT *
FROM tbl_profil LEFT JOIN tbl_pic ON tbl_profil.str_id = tbl_pic.str_bruger_id
ORDER BY tbl_pic.str_bruger_id
Avatar billede gadebarnet Nybegynder
21. november 2004 - 16:08 #2
select top 300 count(str_brugernavn) as antal,tbl_profil.str_id as tbl_profil_str_id,str_brugernavn,str_område,str_fødselsdag,tbl_pic.str_id as tbl_pic_str_id from tbl_profil left join tbl_pic on tbl_profil.str_id = tbl_pic.str_bruger_id where str_køn='Kvinde' group by tbl_profil.str_id,str_brugernavn,str_område,str_fødselsdag,tbl_pic.str_id order by antal desc,tbl_pic.str_id desc


Den der tager dbl poster med, og det skal den ikke....
Avatar billede gadebarnet Nybegynder
21. november 2004 - 16:17 #3
Hvis du kan få denne her til IKKE at tage dbl poster med, så giver jeg en øl.

select top 300 count(str_brugernavn) as antal,tbl_profil.str_id as tbl_profil_str_id,str_brugernavn,str_område,str_fødselsdag,tbl_pic.str_id as tbl_pic_str_id from tbl_profil left join tbl_pic on tbl_profil.str_id = tbl_pic.str_bruger_id where (CONVERT(char(8), str_fødselsdag, 112) between '19771121' and '19781121') and str_køn='Kvinde' group by tbl_profil.str_id,str_brugernavn,str_område,str_fødselsdag,tbl_pic.str_id order by antal desc,tbl_pic.str_id desc
Avatar billede arne_v Ekspert
21. november 2004 - 16:26 #4
Hvordan kommer der dobbelt poster med ?
Avatar billede arne_v Ekspert
21. november 2004 - 16:27 #5
Er der flere record si tbl_pic for hver record i tbl_profil ?
Avatar billede gadebarnet Nybegynder
21. november 2004 - 16:27 #6
Der kommer flere af den samme fra tbl_profil

Ideen er jo at hver profil har 1 eller flere billeder men de skal kun komme eengang og de profiler med billeder skal komme øverst og så derefter dem uden billeder bag efter...
Avatar billede arne_v Ekspert
21. november 2004 - 16:29 #7
Så skal du undlade at selecte felter fra tbl_pic og sætte en DISTINCT på
Avatar billede arne_v Ekspert
21. november 2004 - 16:30 #8
Sludder - så kan du jo ikke sortere ...
Avatar billede gadebarnet Nybegynder
21. november 2004 - 16:31 #9
nemlig... Har jeg prøvet...

Der skal også kunne køres where på en masse andre felter fra tbl_profil, men de skal vel ikke selectes når de ikke skal vises, right ?

Men det må da kunne lade sig gøre...
Avatar billede arne_v Ekspert
21. november 2004 - 16:31 #10
Det nemmeste ville være hvis din applikation håndterede de ekstra data
Avatar billede gadebarnet Nybegynder
21. november 2004 - 16:34 #11
Den der må du lige skære ud i pap...
Avatar billede arne_v Ekspert
21. november 2004 - 16:41 #12
Hvis du har en query som retunerer f.eks.

F1 F2
-- --
A 1
A 2
A 3
B 4
B 5

så kan du lade din kode teste på om F1 for denne record er andereldes end F1 for sidste
record og gøre noget forskelligt alt efter om den er eller ej.
Avatar billede gadebarnet Nybegynder
21. november 2004 - 16:44 #13
Ahh, ja så forstår jeg...

Men jeg tænkte på at lave en sql suery der tager alle med billeder, og en der tager alle uden billeder, og så kun tage profil id'et og smide det ud i et array og så køre det igennem...

Men når jeg prøver at lave en <> istedet for = på join så tager den dem med selv om de ikke er i tbl_pic...
Avatar billede arne_v Ekspert
21. november 2004 - 16:51 #14
Du kunne muligvis lave en:

(SELECT ... FROM tbl_profil WHERE str_id IN (SELECT str_bruger_id FROM tbl_pic))
UNION
(SELECT ... FROM tbl_profil WHERE str_id NOT IN (SELECT str_bruger_id FROM tbl_pic))
Avatar billede gadebarnet Nybegynder
21. november 2004 - 20:39 #15
Det funger heller ik... Kan man ikke lave en NOT join ?
Avatar billede gadebarnet Nybegynder
08. marts 2005 - 16:03 #16
lukker
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