Domanda

Ho due tabelle. Uno di loro (tabella profilo_utente) ha un campo denominato "user_profile_id" e l'altro (tabella user_friend) ha due campi denominati "user_profile1_id" e "user_profile2_id" che sono FK alla prima tabella.

voglio controllare se ci sono utenti in profilo_utente che non sono nella tabella user_friend, né in user_profile1_id né user_profile2_id.

Quali query dovrebbe utilizzare?

Modifica

CREATE TABLE user_profile (
  --fields
)

CREATE TABLE user_friend (
  user_profile1_id INT,
  user_profile2_id INT
)
È stato utile?

Soluzione

Usa un LEFT JOIN e controllo per i valori nulli. Qualcosa di simile:

SELECT profile.* FROM user_profile profile
 LEFT JOIN user_friend friend1 ON friend1.user_profile1_id = user_profile_id
 LEFT JOIN user_friend friend2 ON friend2.user_profile2_id = user_profile_id
 WHERE friend1.user_profile1_id IS NULL AND friend2.user_profile2_id IS NULL

Ecco un link alle varie unisce

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top