Kom ihåg mig?
Home Menu

Menu


Två databaser + en relationsdatabas

 
Ämnesverktyg Visningsalternativ
Oläst 2013-08-12, 14:55 #1
elitassons avatar
elitasson elitasson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2007
Inlägg: 812
elitasson elitasson är inte uppkopplad
Mycket flitig postare
elitassons avatar
 
Reg.datum: Aug 2007
Inlägg: 812
Standard Två databaser + en relationsdatabas

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
elitasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-08-12, 15:12 #2
linusoleander linusoleander är inte uppkopplad
Medlem
 
Reg.datum: Feb 2010
Inlägg: 234
linusoleander linusoleander är inte uppkopplad
Medlem
 
Reg.datum: Feb 2010
Inlägg: 234
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.
linusoleander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-08-12, 15:22 #3
elitassons avatar
elitasson elitasson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2007
Inlägg: 812
elitasson elitasson är inte uppkopplad
Mycket flitig postare
elitassons avatar
 
Reg.datum: Aug 2007
Inlägg: 812
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')
Hurvida det funkar på miljoner eller miljarder rader i tabellerna återstår att se.
elitasson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-08-13, 11:04 #4
Nihilnovi Nihilnovi är inte uppkopplad
Medlem
 
Reg.datum: Jun 2008
Inlägg: 233
Nihilnovi Nihilnovi är inte uppkopplad
Medlem
 
Reg.datum: Jun 2008
Inlägg: 233
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
Nihilnovi är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-08-15, 08:59 #5
elitassons avatar
elitasson elitasson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2007
Inlägg: 812
elitasson elitasson är inte uppkopplad
Mycket flitig postare
elitassons avatar
 
Reg.datum: Aug 2007
Inlägg: 812
Låter bra det!
elitasson är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 02:18.

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