Query tra 3 tabelle

Tommy03

Utente Attivo
6 Giu 2018
616
58
28
20
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.203
207
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
E Query differenza tra tabelle MySQL 5
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
max75 query su due tabelle e dati doppioni MS Access 2
E Aiuto per query PHP 8
E Query Alias PHP 4
T Query con date MS Access 1
K Inserimento query Errore 1366 PHP 4
L Query e selezione DB con $_POST PHP 2
M query update e delete PHP 0
A media degli elementi estratti da una query MySQL 0
S Passare query o utm alla pagina successiva Domini 1
O problema con query PHP 4
M Query PHP 8
R query DELETE non cancella i record PHP 1
G Query con i giorni della settimana MySQL 10
E Query annidate o cicli MySQL 1
C bottone query MySQL 0
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 27
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
M Visualizzazione a video risultati query php PHP 0
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

Discussioni simili