Query tra 3 tabelle

Tommy03

Utente Attivo
6 Giu 2018
614
58
28
18
Vicenza
Salve a tutti, avrei bisogno di un favore. Ho queste quattro tabelle:
-user (userid,username,...)
-follow (follower,following)
-eventi (eventid,sport,descrizione,...)
-puntate (userid,eventid,...)
In sostanza funziona così: un utente si iscrive e i suoi dati vengono inseriti nella tabella user, con il campo userid che è un BIGINT(50). Quando inizia a seguire qualcuno, il suo userid viene inserito in "follower", mentre quello della persona che segue in "following" e viceversa se viene seguito. Poi c'è la tabella eventi, che ha diversi campi che vengono da me completati manualmente e il campo eventid è BIGINT(50). Infine quando un utente esegue una "puntata", il suo userid personale viene inserito nell'apposito campo della tabella "puntate", e dato che la puntata è riferita a un evento preciso, l'eventid di quell'evento viene inserito nel campo eventid della tabella "puntate".
Fin qui tutto OK, però ho creato una pagina in cui si possono filtrare gli eventi in diversi modi, e vorrei aggiungere un filtro con il quale vengono presentati ad un utente X tutti gli eventi per i quali vi è un record nella tabella con l'eventid di quell'evento e l'userid di una persona che X segue.
Sapete suggerirmi qual è la query corretta?
Io ho già provato utilizzando dei cicli, ma mi piacerebbe sapere se è possibile farlo soltanto con una semplice query.
Grazie mille e buona giornata.
 

marino51

Utente Attivo
28 Feb 2013
3.048
192
63
Lombardia
riscrivo come l' ho capita io,

-user (userid,username,...)
-eventi (eventid,sport,descrizione,...)
-follow (follower,following)
-puntate (userid, eventid,...)

un utente X si iscrive e i suoi dati vengono inseriti nella tabella user(X.userid)

Quando inizia a seguire qualcuno Y, il suo userid viene inserito in follow(X.follower)
mentre quello della persona che segue in follow(Y.following)

e vorrei aggiungere un filtro per utente X
tutti gli eventi per i quali vi è un record nella tabella con l'eventid di quell'evento e l'userid di una persona Y che X segue.

da cui l'esempio
1586080885268.png


ed il risultato
1586080979918.png


ho usato questa query,
SQL:
select t.follower, x.username, t.following, y.username, t.eventid, e.descrizione from(
select f.follower, f.following, p.eventid
from follow f, puntate p
where p.userid = f.following
and f.follower = 11
) t
left join user x on t.follower = x.userid
left join user y on t.following = y.userid
left join eventi e on t.eventid = e.eventid
a cui puoi aggiungere ulteriori filtri nella clausola where esistente
e (se serve) aggiungendone un'altra se vuoi filtrare elementi delle anagrafiche, a seguire le left join

in realtà, se ho capito ciò che vuoi estrarre, la select agisce su 2 tabelle e aggancia le 2 (3) anagrafiche
 
Discussioni simili
Autore Titolo Forum Risposte Data
C Php/Mysql query JOIN tra tabelle PHP 4
C Php/Mysql query JOIN tra due tabelle PHP 18
D Query di delete tra due tabelle MySQL 1
W Creare una query tra due tabelle... PHP 1
G [PHP] operazione matematica tra risultati di query PHP 5
B Phpmyadmin-query ai preferiti e non naviga tra valori esterni MySQL 0
M Interazione tra un più campi di un form con un solo campo di database - query mysql PHP 2
T Query su due tabelle con totali Database 4
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 26
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
Alex_70 Query group actor e film PHP 26
TpD Incolonnare risultati query (mysql_result deprecato...) PHP 3
P Query di ricerca profonda MySQL 0
T Query per ricerca ritardo evento MS Access 7
max1974 2 query not work MySQL 3
M Ottimizzazione Query PHP 8
strambotto Query di aggiornamento MS Access 0
I Aiuto query MySQL 8
J [PHP] Visualizzare risultato query stessa pagina PHP 3
S [PHP] non prende la query PHP 0
D [PHP] Query che aggiorna tabella PHP 4
A [PHP] Problema query insert [RISOLTO] PHP 14
M [PHP] Ottimizzazione query PHP 13

Discussioni simili