Avatar billede lyngedrengen Nybegynder
24. februar 2002 - 13:29 Der 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.

Uha, jeg vil blive glad for noget hjælp ASAP :-)

Der er 100 point at hente....

Avatar billede a1a1 Novice
24. februar 2002 - 13:34 #1
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"
Avatar billede a1a1 Novice
24. februar 2002 - 13:36 #2
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" 

skal det vel være...:)
Avatar billede beldring Nybegynder
24. februar 2002 - 13:39 #3
Hvad betyder det der INNER JOIN???????????????????
Avatar billede a1a1 Novice
24. februar 2002 - 13:42 #4
join betyder at forene
inner betyder indvedigt (tag alle kampliga og hvor dem der en er magen til i klubber )
Avatar billede proaccess Nybegynder
24. februar 2002 - 13:57 #5
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"
Avatar billede proaccess Nybegynder
24. februar 2002 - 13:59 #6
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"
Avatar billede terry Ekspert
24. februar 2002 - 14:02 #7
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
Avatar billede proaccess Nybegynder
24. februar 2002 - 14:05 #8
>Terry: I'll take a look at it      8-)
Avatar billede lyngedrengen Nybegynder
24. februar 2002 - 14:05 #9
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....
Avatar billede terry Ekspert
24. februar 2002 - 14:08 #10
thanks proaccess :o)
Avatar billede lyngedrengen Nybegynder
24. februar 2002 - 14:14 #11
Tak til jer for svarene!

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 ;-)
Avatar billede proaccess Nybegynder
24. februar 2002 - 14:23 #12
Prøv lige denne, og tak for points...

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"
Avatar billede lyngedrengen Nybegynder
24. februar 2002 - 14:32 #13
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.!
Avatar billede terry Ekspert
24. februar 2002 - 14:39 #14
Now we are going over to ASP!
Avatar billede lyngedrengen Nybegynder
24. februar 2002 - 14:47 #15
Ja, det er selvfølgelig rigtigt...meeenn ;-)
Avatar billede terry Ekspert
24. februar 2002 - 15:02 #16
response.write YourRecordset("Klubnavn")
Avatar billede lyngedrengen Nybegynder
24. februar 2002 - 15:09 #17
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....
Avatar billede proaccess Nybegynder
24. februar 2002 - 15:12 #18
prøv med:

response.write ("K1.Klubnavn")
response.write ("K2.Klubnavn")

ASP er dog ikke min stærke side...
Avatar billede lyngedrengen Nybegynder
24. februar 2002 - 15:18 #19
Næh, det vil rent faktisk skrive teksten K1.Klubnavn og en response.write rs("K1.Klubnavn") æder den desværre ikke :-(.

Nå jeg løser den evt. med 2 sql'er 1 til udehold og 1 til hjemmehold :-) Igen tak for hjælpen!!
Avatar billede terry Ekspert
24. februar 2002 - 15:47 #20
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.

response.write ("K1Klubnavn")
response.write ("K2Klubnavn")
Avatar billede lyngedrengen Nybegynder
24. februar 2002 - 15:52 #21
Thanx a lot!! :-)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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