24. februar 2002 - 13:29Der er
20 kommentarer og 1 løsning
SQL med Where og Join?
Jeg har lavet en sql, der finder et holds sidste 4 kampe med følgende sql:
sql = "SELECT * FROM kampliga WHERE ((hjemmehold="& holdid & " OR udehold=" & holdid &") AND Runde BETWEEN " & runde & " AND " & rundemin & " AND Saeson=" & season & ") ORDER BY Runde"
Men da jeg kun har et id på holdet og ikke holdnavnet i tabellen kampliga skal jeg have lavet en join over til en tabel, der indeholder et id og så klubnavnet, altså noget i stil med:
JOIN klubber.klubid ON kampliga.hjemmehold
Men jeg kan ikke få det "placeret" i sql'en, så det virker. Den øverste SQL finder det den skal men klubberne er altså så angivet med tal i stedet for navne.
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
sql = "SELECT * FROM kampliga INNER JOIN klubber.klibid ON kampliga.hjemmehold WHERE ((hjemmehold="& holdid & " OR udehold=" & holdid &") AND Runde BETWEEN " & runde & " AND " & rundemin & " AND Saeson=" & season & ") ORDER BY Runde"
sql = "SELECT * FROM kampliga INNER JOIN klubber.klubid ON kampliga.hjemmehold=klubber.klubid WHERE ((hjemmehold="& holdid & " OR udehold=" & holdid &") AND Runde BETWEEN " & runde & " AND " & rundemin & " AND Saeson=" & season & ") ORDER BY Runde"
sql = "SELECT kampliga.*, klubber.* FROM kampliga INNER JOIN klubber ON klubber.klubid=kampliga.hjemmehold WHERE ((kampliga.hjemmehold="& holdid & " OR kampliga.udehold=" & holdid &") AND kampliga.Runde BETWEEN " & runde & " AND " & rundemin & " AND kampliga.Saeson=" & season & ") ORDER BY kampliga.Runde"
MEN så får du jo også klub-info for alle de klubber, hvor vores hjemme-hold spiller på udebane... og det er jo ikke hvad du vil???
PRØV MED DENNE I STEDET...
sql = "SELECT kampliga.*, klubber.* FROM kampliga, klubber WHERE klubber.klubid=" & holdid & " AND ((kampliga.hjemmehold="& holdid & " OR kampliga.udehold=" & holdid &") AND kampliga.Runde BETWEEN " & runde & " AND " & rundemin & " AND kampliga.Saeson=" & season & ") ORDER BY kampliga.Runde"
proaccess>Will you take a look at this question, I am sure you can put an answer together. I am lost on this one without making temp tables! http://www.eksperten.dk/spm/175802
Hold da op - jeg fik vist koblet en gammel mail adresse til mht. at få besked når der var svar på mit spørgsmål - jeg tester lige de ting I er kommet med og vender hurtigt tilbage. Under alle omstændigheder skal I allerede nu have tak for de hurtige svar....
Jeg får en syntax fejl ved din sql a1, jeg prøvede svaret (den første af de to sql'er) fra Proaccess og det virker efter hensigten og er bestemt løsningen på mit spørgsmål. At jeg så ikke har været helt snu svider jo til min egen r..
Nu får jeg listet kampene på denne måde:
Klubnavn - tal
Jeg mangler altså at få joinet over til "udehold", men det er vel blot 1 sql til af samme skuffe? eller kan det laves i et hug?
Det er meningen at man klikker på 1 hold for så at se hvorledes det har klaret sig i de sidste 4 runder (hvor de jo højst sandsynligt har spillet på såvel ude som hjemmebane - i relation til din 2. sql)
Jeg håber pointene luner! :-) Tusind tak for hjælpen til jer og hvis I har en kommentar til mit sidste spørgsmål om udehold, så hører jeg dem gerne ;-)
sql = "SELECT kampliga.*, K1.*, K2.* FROM kampliga, klubber AS K1, klubber AS K2 WHERE K1.klubid=kampliga.hjemmehold AND K2.klubid=kampliga.udehold AND ((kampliga.hjemmehold="& holdid & " OR kampliga.udehold=" & holdid &") AND kampliga.Runde BETWEEN " & runde & " AND " & rundemin & " AND kampliga.Saeson=" & season & ") ORDER BY kampliga.Runde"
Hmm, med risiko for at virke tåbelig (suk!) ;-), så ved jeg ikke hvorledes jeg så får lavet response.write("?"). Prøvede med K1 og K2, men no can do. Hvad skal der stå? Response.write("Klubnavn") giver fint hjemmeholdsnavnene...tak fordi du lige tager dig tid til dette ekstra spm.!
Thanx Terry, but I tried that and by doing that I only get the Clubnames for the hometeams, not the awayteams. It's probably just because I don't really get what's happening in the SQL with the K1 and K2....
In ASP you will be working with a SINGLE recordset I suggest that in your SQL you only select the fields that you use in ASP and that you also name the fields. EXAMPLE: SELECT table1.fld1 AS K1Klubnavn, table2.fld1 AS K2Klubnavn ..... then in your ASP you will have NO problems in which table each field comes from.
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.