FAQ |
Kalender |
|
![]() |
#1 | |||
|
||||
Mycket flitig postare
|
Hej!
Edit:Kanske ska vara tabeller istället för databaser i titlen. En admin får gärna ändra det. Jag hade behövt lite hjälp med att förstå mig på de olika JOIN-funktionerna i MySQL till ett litet problem jag stött på. Mysql-satsen som jag vill få rätt på ska användas för att autocomplete:a en sökruta där man vill lägga till en spelare i ett grupp . Om spelaren redan finns i gruppen ska denne inte komma upp i sökresultatet. Jag har följande databaser (aningen förenklade): player: - id - first_name - ss_number group: -id -name rel_player_group: -id -player_id -group_id Exempel: Totalt finns det 3 spelare. En av dessa spelare är tillagda i en grupp. När jag söker på fler spelare jag vill lägga till i denna grupp ska de två spelare som inte är tillagda i gruppen visas som förslag. Senast redigerad av elitasson den 2013-08-12 klockan 15:06 |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Medlem
|
Gör en LEFT JOIN mellan player och group (och din relationstabell). Lägg sedan till WHERE group.id IS NULL
Har inte riktigt tid att skriva någon kod just nu. Någon annan användare här på forumet kanske kan bidra med lite kod. |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Lyckades får hjälp i WNs irc-kanal.
Resultatet blev ungefär så här: Kod:
SELECT * FROM player WHERE id NOT IN (SELECT player_id as id FROM rel_player_group WHERE group_id = '$groupId') |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Medlem
|
Se till att group_id och player_id är indexerade så ska det inte vara något problem, det är inga fulltext sökningar du gör
![]() |
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Mycket flitig postare
|
Låter bra det!
|
|||
![]() |
![]() |
Svara |
|
|