@rinaz22

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

Всем привет! Нужно достать записи с таблицы orders, id у которых нет в таблице applications(столбик order_id).
В таблице applications в столбике order_id хранятся id записей с таблицы orders.
Пробовал так, но так он сравнивает только 1 запись в таблице applications, а другие нет.
$get_orders = mysqli_query($db, "SELECT * FROM `orders` WHERE `city` = '$_SESSION[city]' AND `id` NOT IN (SELECT `id` FROM `applications` WHERE `driver` = '$_SESSION[id]' AND `order_id` = `orders`.`id`)");

Пробовал использовать INNER JOIN, но так все записи с orders повторяются столько раз, сколько есть записей в таблице applications.
  • Вопрос задан
  • 277 просмотров
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov Куратор тега MySQL
Web developer
... left join ... where ... is null
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
select * from orders
where id not in (
     select distinct order_id from applications
)

Но если таблицы большие, то все плохо.
Ответ написан
Ваш ответ на вопрос

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

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