Requête entre deux tables connexes
Question
J'ai deux tables. L'un d'eux (table user_profile) a un champ nommé « user_profile_id » et l'autre (tableau user_friend) a deux champs nommés « user_profile1_id » et « user_profile2_id » qui sont FK à la première table.
Je veux vérifier s'il y a des utilisateurs user_profile qui ne sont pas dans le tableau de user_friend, ni dans user_profile1_id, ni user_profile2_id.
Quelle requête dois-je utiliser?
EDIT:
CREATE TABLE user_profile (
--fields
)
CREATE TABLE user_friend (
user_profile1_id INT,
user_profile2_id INT
)
La solution
Utiliser un LEFT JOIN
et vérifier les valeurs nulles. Quelque chose comme:
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
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange