webForumDet fria alternativet

ologiskt SQL result

7 svar · 362 visningar · startad av U2K

U2KMedlem sedan jan. 2000231 inlägg
#1

Hej jag har en liten hemsida där jag presenterar alla matcher som mitt klubblag skall spela. Saken är den att jag vill visa äldre matcher också, där lagen har möts innan.

SELECT T.match_id AS mid, Concat(K.namn,' - ',F.namn) as VS, R.hemma, R.borta, T.datum 
FROM k_matcher AS T
LEFT JOIN k_klubbar AS K ON T.home_id = K.klubb_id
LEFT JOIN k_klubbar AS F ON T.away_id = F.klubb_id
LEFT JOIN k_resultat AS R ON T.match_id = R.match_id
WHERE T.spelad = 'Y' AND R.hemma IS NOT NULL AND R.borta IS NOT NULL AND ( T.home_id =$hemma AND T.away_id =$borta ) OR ( T.home_id =$borta AND T.away_id =$hemma ) 
ORDER  BY T.datum

Om jag i phpmyadmin kör denna sql sats så av någon anledning får jag detta resultatet..

mid => 123
VS => Nesse - Kalle
hemma=> 1
borta=> 2
datum=> Y-m-d- H:i:s

mid => 245
VS => Kalle - Nesse
hemma=> 1
borta=> 2
datum=> Y-m-d- H:i:s

mid => 356
VS => Nesse - Kalle
hemma=> NULL
borta=> NULL
datum=> Y-m-d- H:i:s

(För att klargöra, Y-m-d H:i:s är alltså ett datum i den riktiga resultatet)

Så här kan det se ut och borde väl inte bli... Sista posten är ju inte spelad (T.spelad är 'N' enum('Y','N')) och hemma och borta är NULL...

Varför blir det så här.. är det en bugg eller är jag ute och snurrar som vanligt.

UlfTMedlem sedan maj 20016 050 inlägg
#2

Frågan är vilken del av sql-satsen som where-villkoret verkar på. Är det hela satsen? Eller är det bara en delsats? I det andra fallet, kan matcherna med hemma=null och borta=null komma med i alla fall, därför att de selekteras av en annan delsats i sql-satsen.

U2KMedlem sedan jan. 2000231 inlägg
#3

Where-villkoret syftar på hela satsen. Trodde jag iaf.
Kan man skriva om den och få bort null posten då?

/Ännu en Ulf

U2KMedlem sedan jan. 2000231 inlägg
#4

Hittat felet

Glömde visst att sätta en parantes runt OR satsen.. *pinsamt*
Jag fixade det. Så nu fungerar den..
:)

U2KMedlem sedan jan. 2000231 inlägg
#5

Flytta detta till ologiskt SQL... jag postade fel..

UlfTMedlem sedan maj 20016 050 inlägg
#6

U2K skrev:

Where-villkoret syftar på hela satsen. Trodde jag iaf.

Jag kan inte utesluta att den verkligen gör det. Men håll med om att satsen är rätt snårig, så det är svårt att se på rak arm. :)

UlfTMedlem sedan maj 20016 050 inlägg
#7

Syftade denna tråd: http://www.webforum.nu/showthread.php?s=&threadid=119273&forumid=53
på den här tråden?

@ndersMedlem sedan juni 200026 914 inlägg
#8

Trådar ihopslagna, och bugg i forumet funnen. ;)

"Rätt inlägg" går inte att acceptera som svar i denna ihopslagna tråd. Konstigt.

mvh
moderaten

Genererad på 368 ms · cache AV · v20260730165559-full.f96bc7eb