Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


sökfunktion i 3 tabeller - problem med join och allt möjligt

Postades av 2003-01-08 09:45:18 - Rolf Carlbom, i forum asp - allmänt, Tråden har 3 Kommentarer och lästs av 416 personer

Har tre tabeller. Member innehåller medlemsinfo, yrke_koppling kopplar yrken till medlemen via memberID och licence kopplar på samma sätt körkort.
Det ska alltså vara en sökfunktion där man kan söka på namn, stad, ålder, yrke och körkort. Man ska kunna fylla i vilka man vill. Det funkar dock inte.
<code>
Visa ="SELECT * FROM member " & _
"LEFT JOIN yrke_koppling ON member.MemberID = yrke_koppling.MemberID " & _
"WHERE Namn LIKE '%" + Replace(varNamn, "'", "''") + "%' " & _
"AND Stad LIKE '%" + Replace(varStad, "'", "''") + "%' " & _
"AND BirthYY BETWEEN " & varAge2 & " AND " & varAge & " " & _
"AND Task = " & request.form("Yrke") & " " & _
"ORDER BY Namn DESC"
</code>
Denna bit är enbart kopplingen mellan member och yrke_koppling. Trixet är att om medlemmen inte har något yrke så får jag inget resultat. Finns det nån wildcard för numeriska värden?

Sen så blir det ju ännu trixigare när jag ska lägga till kopplingen till licence:
<code>
Visa ="SELECT * FROM member " & _
"LEFT JOIN yrke_koppling ON member.MemberID = yrke_koppling.MemberID " & _
"LEFT JOIN licence ON member.MemberID = licence.MemberID " & _
"WHERE Namn LIKE '%" + Replace(varNamn, "'", "''") + "%' " & _
"AND Stad LIKE '%" + Replace(varStad, "'", "''") + "%' " & _
"AND BirthYY BETWEEN " & varAge2 & " AND " & varAge & " " & _
"AND Task = " & request.form("Yrke") & " " & _
"AND LicenceID = " & request.form("LicenceID") & " " & _
"ORDER BY Namn DESC"
</code>

Då får jag Syntax error (missing operator) in query expression 'member.MemberID = yrke_koppling.MemberID LEFT JOIN licence ON member.MemberID = licence.MemberID'.


Svara

Sv: sökfunktion i 3 tabeller - problem med join och allt möj

Postades av 2003-01-08 10:19:10 - Andreas Hillqvist

Försök med:
<code>
Visa ="SELECT *" & vbCrLf & _
"FROM (member LEFT JOIN " & vbCrLf & _
" yrke_koppling ON member.MemberID = yrke_koppling.MemberID) LEFT JOIN " & vbCrLf & _
" licence ON member.MemberID = licence.MemberID " & vbCrLf & _
"WHERE Namn LIKE '%" + Replace(varNamn, "'", "''") + "%' AND " & vbCrLf & _
" Stad LIKE '%" + Replace(varStad, "'", "''") + "%' AND " & vbCrLf & _
" BirthYY BETWEEN " & varAge2 & " AND " & varAge & " AND " & vbCrLf & _
" (Task Is Null OR Task = " & request.form("Yrke") & ") AND " & vbCrLf & _
" (LicenceID Is Null OR LicenceID = " & request.form("LicenceID")) & " & vbCrLf & _
"ORDER BY Namn DESC"
</code>


Svara

Sv: sökfunktion i 3 tabeller - problem med join och allt möj

Postades av 2003-01-09 04:18:12 - Rolf Carlbom

Tycker det borde funka men jag får
Expected end of statement
/community/member_search.asp, line 54, column 65
" (LicenceID Is Null OR LicenceID = " & request.form("LicenceID")) & vbCrLf & _

Vad är galet?


Svara

Sv: sökfunktion i 3 tabeller - problem med join och allt möj

Postades av 2003-01-09 05:12:22 - Rolf Carlbom

Jag löste det på ett annat sätt. Genom att kolla allt i if-satser så sätter jag ihop select-satsen efter det. Löser också problemen med att man får flera av samma resultat pga LEFT JOIN.
Men är det här bästa sättet att lösa det? Ska man tänka annorlunda?
<code>
<% IF Request.QueryString("DO") = "SOK" THEN
Dim SQLstring, varAge, varAge2

SQLstring = "SELECT * FROM (member LEFT OUTER JOIN " & vbCrLf & _
" yrke_koppling ON member.MemberID = yrke_koppling.MemberID) LEFT OUTER JOIN " & vbCrLf & _
" licence ON member.MemberID = licence.MemberID WHERE Member.MemberID > 0 "

if request.form("Yrke") <> "" AND request.form("LicenceID") <> "" then
SQLstring = "SELECT * FROM (member LEFT OUTER JOIN " & vbCrLf & _
" yrke_koppling ON member.MemberID = yrke_koppling.MemberID) LEFT OUTER JOIN " & vbCrLf & _
" licence ON member.MemberID = licence.MemberID WHERE Member.MemberID > 0 "

elseif request.form("Yrke") <> "" then
SQLstring = "SELECT * FROM (member LEFT OUTER JOIN " & vbCrLf & _
" yrke_koppling ON member.MemberID = yrke_koppling.MemberID) " & vbCrLf & _
" WHERE Member.MemberID > 0 "

elseif request.form("LicenceID") <> "" then
SQLstring = "SELECT * FROM (member LEFT OUTER JOIN " & vbCrLf & _
" licence ON member.MemberID = licence.MemberID) " & vbCrLf & _
" WHERE Member.MemberID > 0 "

else
SQLstring = "SELECT * FROM member WHERE Member.MemberID > 0 "
end if

if Request.Form("Namn") <> "" then
SQLstring = SQLstring & "AND Namn LIKE '%" &_
Request.Form("Namn") & "%'"
end if

if request.form("Stad") <> "" then
SQLstring = SQLstring & " AND Stad LIKE '%" &_
request.form("Stad") & "%'"
end if

if request.form("Age") <> "" then
dDate = Date()
Idag = Right(Year(dDate),4)
varAge = Idag - request.form("Age")
varAge2 = Idag - request.form("Age") - 9
SQLstring = SQLstring & " AND BirthYY BETWEEN " & varAge2 & " AND " & varAge & " "
end if

if request.form("Yrke") <> "" then
SQLstring = SQLstring & " AND Task = " & request.form("Yrke") & " "
end if

if request.form("LicenceID") <> "" then
SQLstring = SQLstring & " AND LicenceID = " & request.form("LicenceID") & " "
end if
SQLstring = SQLstring & " ORDER BY Namn DESC"
rsMember.Open SQLstring, Connect, adOpenStatic, adLockOptimistic
%>
</code>


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 812
27 960
271 761
568
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies