Avatar billede celinder Nybegynder
23. juni 2005 - 16:02 Der er 9 kommentarer

search funktion i db

jeg ska implementere en search funktion i en db....

jeg har nogle spørgsmål hvortil er er nogle svar....

jeg har brug for kun at søge i de spørgsmål hvortil der ligger et svar.

spørgsmål og svar ligger i hver sin tabel.

jeg gør følgende lige nu, men den giver mig spørgsmålet 4 gange hvis der f.eks er 4 svar til et spørgsmål, kan jeg ikke samle det eller gøre noget andet ?

select * from Postings right join Posting_Reply ON Postings.Posting_ID=Posting_Reply.Posting_ID
Avatar billede arne_v Ekspert
23. juni 2005 - 16:05 #1
select * from Postings where exists (select * from Posting_Reply where Postings.Posting_ID=Posting_Reply.Posting_ID)

måske
Avatar billede celinder Nybegynder
23. juni 2005 - 16:07 #2
nej så får jeg jo ikke hæftet svarene på, så jeg kan søge i dem ??
Avatar billede arne_v Ekspert
23. juni 2005 - 16:10 #3
en select vil altid returnere en firkant (et antal rækker x et antal kolonner)

hvis du skal have alle 4 svar så får du også spørgsmålet 4 gange

ellers skal du lave 2 seperate select
Avatar billede celinder Nybegynder
23. juni 2005 - 16:11 #4
jeg skal sådan set bruge alle data fra spørgsmål tabel der heder postings, hvis og kun hvis der er et svar som ligger i posting_Reply, hvor jeg også skal bruge det hele......

de to tabeller kædes sammen via Postings.Posting_ID=Posting_Reply.Posting_ID
Avatar billede celinder Nybegynder
23. juni 2005 - 16:13 #5
hmmmm kan jeg ikke bruge group by - den melder bare fejl når jeg prøver eller er jeg helt galt på den ?
Avatar billede arne_v Ekspert
23. juni 2005 - 16:14 #6
select * from Postings join Posting_Reply ON Postings.Posting_ID=Posting_Reply.Posting_ID

giver vel det ?
Avatar billede celinder Nybegynder
23. juni 2005 - 16:18 #7
jo det gør det men så er jeg tilbage hvor jeg startede, med at den retunere spørgsmål 4 gange hvis der er 4 svar, men du siger jo også det ikke kan være anderledes, så må jeg jo finde på en anden løsning tror jeg ....
Avatar billede arne_v Ekspert
23. juni 2005 - 16:21 #8
det er ret almindelig med logik a la:

olda = ""
SELECT a,b FROM t
while more records {
    get record
    if a <> olda then
      udskriv header med a
    end if
    udskriv b
    olda = a
}
Avatar billede arne_v Ekspert
24. juli 2005 - 15:50 #9
celinder ?
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