#mysql #sql #select
Нужно вывести информацию с db_order, если нету ни одного повторения значения с db_order.id в таблице db_ips.order_id. Сами таблицы: db_ips db_order Спасибо.
Ответы
Ответ 1
Если я правильно понял ваш вопрос, то как то так: SELECT db_order.* FROM db_order LEFT OUTER JOIN db_ips ON db_order.id = db_ips.order_id WHERE db_ips.order_id IS NULL;Ответ 2
1й способ: SELECT db_order.* FROM db_order LEFT JOIN db_ips ON db_order.id = db_ips.order_id WHERE db_ips.order_id IS NULL 2й способ: SELECT * FROM db_order WHERE NOT EXISTS(select 1 from db_ips where db_order.id = db_ips.order_id) 3й способ: SELECT * FROM db_order WHERE id NOT IN (SELECT order_id FROM db_ips) Скорость выполнения этих запросов может отличаться. Однозначного ответа, какой из них будет быстрее, конкретно на ваших данных, сказать сложно. Это зависит от количества записей в таблицах и количества совпадающих/отсутствующих значений.Ответ 3
Можно поступить следующим образом SELECT * FROM db_order WHERE id NOT IN (SELECT DISTINCT order_id FROM db_ips)
Комментариев нет:
Отправить комментарий