Ciao a tutti,
avrei bisogno di estrarre dal db tutti gli utenti vicini a chi visualizza la pagina, che non siano tra i preferiti dell'utente e sto sclerando con una query, probabilmente complicandomi la vita con giri inutili.
In particolare non so come fare per chiedere "tutti tranne" su due tabelle diverse.
Io vorrei, a grandi linee, tutti i record della tabella A, tranne quelli che hanno gli stessi valori nella tabella B.
La bozza di codice è la seguente che però estrae anche il record che vorrei escludere, quindi non funziona, la posto solo a titolo di esempio per il commento riportato dentro
C'è un modo più semplice per dire "tutti i record tranne quelli che hanno corrispondenza"?codice:SELECT * FROM tbl_distanze LEFT OUTER JOIN tbl_clg_preferiti ON tbl_distanze.id_utente_b = tbl_clg_preferiti.id_preferito AND tbl_distanze.id_utente = tbl_clg_preferiti.id_user //questo è il caso da escludere WHERE tbl_distanze.id_utente = '1' AND NOW() <= DATE_ADD(tbl_distanze.data, INTERVAL 1 Hour) ORDER BY tbl_distanze.distanza ASC LIMIT 0,20
Di solito gestisco il caso contrario (tutti quelli che hanno un riscontro) utilizzando LEFT JOIN, ma qui devo estrarre solo quelli che LEFT JOIN escluderebbe...
Come sono le due tabelle?
Ci sono due tabelle, una registra le distanze tra gli utenti, l'altra registra i preferiti degli utenti.
tbl_distanze ha:
id - numero progressivo che identifica il record
id_utente - codice dell'utente connesso
id_utente_b - codice dell'utente confrontato
data - registra data e ora inserimento record
tbl_clg_preferiti ha:
id - numero progressivo che identifica il record
id_user - codice dell'utente che ha inserito il preferito
id_preferito - codice dell'utente che è stato aggiunto tra i preferiti
data - registra data e ora inserimento record
Grazie mille in anticipo!
Un saluto,
Marco

Rispondi quotando