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!!!