|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
|
[PHP e mySQL] Problema con JOIN tra tre tabelle
Ciao a tutti
avrei bisogno di un aiuto con php e mysql e join tra due tabelle che mi gestiscono la gallery di un sito. In pratica ho: - tabella utenti, con chiave username - tabella foto, con campo username - tabella video, con campo username Nella pagina di amministrazione mi serve poter fare un riepilogo con una "tabella" in cui compare nome utente e quante foto e video ha caricato, da li poi vado su un'altra pagina (che ho già fatto) con la descrizione dei file. Il problema con cui mi sto picchiando è appunto il join tra le 3 tabelle perchè ovviamente un utente può aver caricato video ma non foto e viceversa e se faccio un join sulle 3 con condizione di username uguale cerca solo le righe in cui c'è lo stesso user in tutte e 3 le tabelle. Come posso fare? non riesco a capire...
__________________
Lego ™ Fans Club Ultima modifica di Dani88 : 09-05-2011 alle 14:27. |
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: May 2011
Messaggi: 10
|
prova a usare questa query
Codice:
SELECT utenti.*, foto.*, video.* FROM utenti INNER JOIN foto ON utenti.username = foto.username INNER JOIN video ON utenti.username = video.username WHERE utenti.id = '$id' p.s.: ho aggiunto la clausola WHERE immaginando che utilizzi anche l'id per gli utenti |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 168
|
Così?
Codice:
SELECT * FROM utenti u, foto f, video v WHERE u.username = f.username OR u.username = v.username ORDER BY u.username |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2005
Città: Perugia
Messaggi: 132
|
Se ti serve il numero di foto e video penso dovrebbe essere:
Codice:
select utenti.id, utenti.name, count(foto.id), count(video.id) from utenti left join foto on foto.utente_id = utenti.id left join video on video.utente_id = utenti.id group by utenti.id, utenti.name Codice:
select
utenti.*,
foto_utente.qty,
video_utente.qty
from
utenti
left join
(select utente_id,count(id) qty from foto group by utente_id) foto_utente
on foto_utente.utente_id = utenti.id
left join
(select utente_id,count(id) qty from video group by utente_id) video_utente
on video_utente.utente_id = utenti.id
__________________
Main: i7-3770K · Corsair H60 · MSI GTX 580 Twin Frozr II OC · Asus Maximus V Gene mATX · Corsair Vengeance 1600Mhz CL8 16GB · Samsung 840 EVO 500GB + Crucial C300 256Gb · Plextor PX-L890SA · Seasonic X850 · Corsair Obsidian 350D · Iiyama ProLite B24D9HDS Muletto: Q6600 G0/Scythe Ninja Plus · Radeon HD5850 · Asus P5E · HDs X-25M G2 160Gb, Seagate 7200.11 500Gb · Corsair VX 550 · Cooler Master CM-690 HTPC: Atom D525,ION-2,3GB RAM,64GB SSD |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:14.



















