@lamoshnik

Как вывести ID из первой таблицы где он отсутствует в второй таблице?

Пишу вывод рандомных фотографий пользователей которых еще не лайкнули, столкнулся с проблемой вывода.

Необходимо написать следующий запрос:

(Выбрать ID из таблицы USERS где PHOTO=1 и GENDER='1' При условии что в таблицы USER_DATING ОТСУТСВУЕТ USER_ID который равен переменной пользователя)
Тоесть вывести ID из таблицы USERS где нет значений IDшников второй таблицы USER_DATING в столбцах

Пишу запрос:
$id_user2=mysqli_query($dblink, "SELECT id FROM users 
    RIGHT JOIN user_dating ON (user_dating.user_id!=$id and user_dating.dating='NULL') 
    where users.photo='1' and users.gender='$search_gender' ORDER BY rand()");

Почему то не работает.. Не могу понять что пишу не так?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
вывести из таблицы где нет значений второй таблицы

Это задача для LEFT JOIN. Общий принцип такой
SELECT t1.* FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL

Соответственно, эту краковсую колбасу из вопроса надо переписать примерно так
SELECT id FROM users u LEFT JOIN user_dating ud ON ud.user_id=u.id
  WHERE ud.user_id IS NULL 
    AND u.photo='1' and u.gender='1' 
  ORDER BY rand()

Также традиционно напоминаю всем жертвам видеокурсов по пехапе, что SQL запросы необходимо выполнять только через подготовленные выражения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы