webForumDet fria alternativet

Flera val sql-sats

1 svar · 254 visningar · startad av tosses

tossesMedlem sedan aug. 2003190 inlägg
#1

Jag har problem med en sql-sats i jsp.
tanken är att man ska kunna urval från 5 olika tabeller.
Här är frågan:

SELECT fo.REDNAMN, ae.BEN, sni92.Fenkelbranch, nykos.område, bolagstyp.bolagstyp, stkl.TEXT
FROM stkl RIGHT JOIN (bolagstyp RIGHT JOIN (sni92 RIGHT JOIN ((nykos RIGHT JOIN ae ON nykos.CFARNR = ae.CFARNR) LEFT JOIN fo ON ae.PEORGNR = fo.PEORGNR) ON sni92.Kod = ae.NG1) ON bolagstyp.bolagskod = fo.JURFORM) ON stkl.STKL = fo.STKLA
WHERE (((fo.REDNAMN) Like "*") AND ((sni92.Fenkelbranch) Like "*") AND ((bolagstyp.bolagstyp) Like "*") AND ((stkl.TEXT) Like "*")) OR (((ae.BEN) Like "*"));

Kruxet är att frågan funkar bra, men inte vilkoren.

i tabellen ae finns 11019 företag. Det stämmer så länge jag inte ställer vilkor. (även %% vilkor) Då finns det bara 5007 företag.
anledning... antagligen finns data i de andra tabellerna som inte har motsvarighet i ae och när man ställer ett vilkor i en av dessa tabeller försvinner en massa företag som inte har relaterad data.

Krux2: i JSP måste det finnas vilkor inlagda redan från början ex:
and stkl.STKL like '%"+request.getParameter("stkl")+"%'
Även om request.getParameter("stkl") är tom så måste den ingå i sqlfrågan.
P.g.a. detta funkar inte frågan.
för om man ställer vilkoret att db ska hitta * i en av relaterade tab, så måste det finnas relaterade data i ae.

Undrar om någon har nåt förslag hur man skulle kunna lösa detta. (Om nån fattar min dåliga förklaring)

jag blir evigt tacksam!!!

aasahMedlem sedan mars 20034 471 inlägg
#2

Hur ser tabellerna ut? Och framförallt hur tänker du? :q

Om du har Företaget F och det inte finns med i de sökkriterier du skriver in, så ska det ju inte komma ut? Så vad är problemet?

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)