WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Knepig SQL fråga (https://www.wn.se/forum/showthread.php?t=28712)

blixtsystems 2008-04-17 15:17

Håller på och bygger en funktion för att söka reda på pokerhänder ur en MySQL databas, men har kört fast.

Problemet är att plocka fram händer med specifika start händer för en spelare.
Dessa är de relevanta fälten i "cards" tabellen:
hand_id
player_id
value

Som exempel så vill jag hitta "hand_id" för händer där en spelares start hand är ett Ess ("A") och en Dam ("Q").
Det knepiga är att jag har designat databasen så att varje kort har en separat rad i "cards" tabellen, och det är besvärligt att ändra design nu.

Alltså är vad jag försöker göra är att plocka ut "hand_id" ur "cards" tabellen där "value" på en rad är "A" och på andra är "Q" men båda har samma "hand_id" och "player_id".

Någon som vet om det är möjligt och kanske t.o.m. har några tips om hur?

orreborre 2008-04-17 16:12

Hmm, det första jag kom att tänka på var att göra 2 referenser till samma tabell, ex:

"SELECT a.hand_id FROM tbl a, tbl b WHERE a.player_id = b.player_id AND a.hand_id = b.hand_id AND ((b.value = 'A' AND a.value = 'Q') OR (a.value = 'A' AND b.value = 'Q'))"

Dock har det varit en hård arbetsdag och hjärnan är lite slö nu.

tartareandesire 2008-04-17 16:22

Edit: tänkte skriva samma sak...

Det bör som orreborre skrev fungera om du jämför mot tabellen själv.

blixtsystems 2008-04-17 16:38

Tackar!
Om jag har förstått rätt är då "a" samt "b" alias för olika instanser av samma tabell?
Låter lovande...skall testa lite.

blixtsystems 2008-04-17 16:57

Ok...fick ihop det och det funkar utmärkt, så jag ville bara tacka igen!

orreborre 2008-04-17 16:59

Perfekt!


Alla tider är GMT +2. Klockan är nu 08:25.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson