[RISOLTO]Problema incrocio query mysql

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

[RISOLTO]Problema incrocio query mysql

Messaggio da Chry1991 »

Salve amici

ho un problema, ho dovuto ritoccare una tabella sql perchè mi risultava pesante nella mole dei dati.

Quindi avendo una relazione n ad n ho dovuto creare una tabella d'appoggio.

le tabelle incrociate sono queste

Codice: Seleziona tutto

Tabella Users
id_user
username
email
password


tabella Clan
id_clan
descrizione
trofei


tabella user_clan
id
id_clan
id_user
ruolo


ora dovrei prendere delle info da user, ma devo restituire anche il clan di appartenenza.
Sarà la stanchezza ma ho scritto la query cosi e non va:

Codice: Seleziona tutto

SELECT guesswho.users.id_user, guesswho.users.username, guesswho.users.trofei, guesswho.users.position,
GUESSWHO.CLAN.CLAN_NAME
FROM guesswho.Users 
					INNER JOIN CLAN_USERS ON CLAN_USERS.ID_USER = USERS.ID_USER
                    INNER JOIN CLAN ON CLAN.ID_CLAN = CLAN_USERS.ID_CLAN
					where guesswho.users.position = 'ITALY' 
					order by trofei desc limit 100
                    
                    

cosa ho sbagliato d preciso?? mi restituisce 0 record

Mi scuso per l'orario, probabilmente la stanchezza mi ha fatto toppare qualcosa

:)

grazie a tutti per l'aiuto
Ultima modifica di Chry1991 il giovedì 4 maggio 2017, 15:59, modificato 1 volta in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Problema incrocio query mysql

Messaggio da Zoff »

perché nelle join non usi il nome dello schema come in tutti gli altri punti?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: Problema incrocio query mysql

Messaggio da Chry1991 »


perche ho scritto nella fretta, dici che può essere quello??

perchè anche rifacendola cosi restituisce sempre 0 record

Codice: Seleziona tutto

SELECT guesswho.users.id_user, guesswho.users.username, guesswho.users.trofei, guesswho.users.position,
GUESSWHO.CLAN.CLAN_NAME
FROM guesswho.Users
               Inner JOIN guesswho.CLAN_USERS ON guesswho.CLAN_USERS.ID_USER = guesswho.USERS.ID_USER
                    inner JOIN guesswho.CLAN ON guesswho.CLAN.ID_CLAN = guesswho.CLAN_USERS.ID_CLAN
               where guesswho.users.position = 'ITALY'
               order by guesswho.users.trofei desc limit 100
Ultima modifica di Chry1991 il giovedì 4 maggio 2017, 9:10, modificato 1 volta in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: Problema incrocio query mysql

Messaggio da Zoff »

teoricamente no, ma alcuni dbms sono un po' "schizzinosi".

Più che altro sei sicuro che ci siano le tuple che ti aspetti? Se vuoi avere anche gli utenti senza clan dovresti usare delle LEFT join, tipo:

Codice: Seleziona tutto

SELECT guesswho.users.id_user, guesswho.users.username, guesswho.users.trofei, guesswho.users.position,
GUESSWHO.CLAN.CLAN_NAME
FROM guesswho.Users
               LEFT JOIN CLAN_USERS ON CLAN_USERS.ID_USER = USERS.ID_USER
                    LEFT JOIN CLAN ON CLAN.ID_CLAN = CLAN_USERS.ID_CLAN
               where guesswho.users.position = 'ITALY'
               order by trofei desc limit 100
Altrimenti trovi solo gli utenti che appaiono in clan_users
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Chry1991
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 461
Iscrizione: giovedì 23 maggio 2013, 20:20
Desktop: Linux Mint 16.04
Distribuzione: Linux Mint 16.04 Xubuntu 16.04
Sesso: Maschile

Re: Problema incrocio query mysql

Messaggio da Chry1991 »

Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4979135#p4979135][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:teoricamente no, ma alcuni dbms sono un po' "schizzinosi".

Più che altro sei sicuro che ci siano le tuple che ti aspetti? Se vuoi avere anche gli utenti senza clan dovresti usare delle LEFT join, tipo:

Codice: Seleziona tutto

SELECT guesswho.users.id_user, guesswho.users.username, guesswho.users.trofei, guesswho.users.position,
GUESSWHO.CLAN.CLAN_NAME
FROM guesswho.Users
               LEFT JOIN CLAN_USERS ON CLAN_USERS.ID_USER = USERS.ID_USER
                    LEFT JOIN CLAN ON CLAN.ID_CLAN = CLAN_USERS.ID_CLAN
               where guesswho.users.position = 'ITALY'
               order by trofei desc limit 100
Altrimenti trovi solo gli utenti che appaiono in clan_users

Grazie mille zoff funziona :)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti