Vedo molte domande simili ma sono così complesse che non riesco a capirle, o non sembrano chiedere la stessa cosa.Utilizza i risultati di una query sql in un'altra istruzione where (subquery?)
È semplice: ho due colonne: utenti (dmid) e download (dfid).
Selezionare tutti gli utenti che hanno scaricato un file specifico:
SELECT DISTINCT dmid FROM downloads_downloads where dfid = "7024"
Utilizzando gli utenti di cui sopra, trovare tutti i file che tutti scaricato:
SELECT dfid from downloads_downloads WHERE dmid = {user ids from #1 above}
contare e ordinare il DFID risultati, quindi possiamo vedere quanti download hanno ricevuto ogni file:
dfid dl_count_field ---- -------------- 18 103 3 77 903 66
Il mio tentativo di risposta.
Questo sembra vicino, ma MySql si blocca e non risponde nemmeno dopo 30 secondi - Riavvio Apache alla fine. E ora non so come strutturare il conteggio e ordinare da parte senza ottenere errori di sintassi a causa della dichiarazione complessa - e potrebbe anche non essere la giusta affermazione.
SELECT dfid from downloads_downloads WHERE dmid IN (
SELECT DISTINCT dmid FROM `downloads_downloads` where dfid = "7024")
Non si deve usare virgolette doppie ('" ') per caratteri letterali, usa invece le virgolette singole.Le virgolette doppie sono una cosa MySQL e non funzioneranno con altri DBMS (perché nelle virgolette doppie standard SQL vengono utilizzate per gli identificatori, non per i letterali). che dfid è un valore numerico, tu non dovrebbe usare tutte le virgolette tutte. I numeri non hanno bisogno di virgolette. –