Запрос между двумя связанными таблицами
Вопрос
У меня есть два стола. Один из них (таблица user_profile) имеет поле с именем «user_profile_id», а другая (таблица user_friend) имеет два поля с именем «user_profile1_id» и «user_profile2_id», которые являются FK для первой таблицы.
Я хочу проверить, есть ли какие -либо пользователи в user_profile, которые не находятся в таблице user_friend, ни в User_profile1_id, ни user_profile2_id.
Какой запрос мне использовать?
РЕДАКТИРОВАТЬ:
CREATE TABLE user_profile (
--fields
)
CREATE TABLE user_friend (
user_profile1_id INT,
user_profile2_id INT
)
Решение
Использовать LEFT JOIN
и проверьте на наличие нулевых значений. Что-то типа:
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
Не связан с dba.stackexchange