ИСПОЛЬЗОВАНИЕ предложения Keyword vs ON - MYSQL

Возможный дубликат:
MySQL ON против USING?

Запрос 1:

SELECT *
FROM users
JOIN orders ON (orders.user_id = users.user_id)
WHERE users.user_id = 1;

Запрос 2:

SELECT *
FROM users
JOIN orders USING (user_id)
WHERE user_id = 1;

Я хочу присоединиться к заказам и таблицам пользователей, чтобы получить некоторые определенные данные. Он работает нормально. Моя проблема связана с тем, что оба запроса выдают один и тот же набор результатов, то же самое? Какой из них эффективнее использовать? Какой из них хорош для производительности? Какой из них - лучшая практика?

Ответ 1

Предложение USING - это то, что нам не нужно упоминать в JOIN, когда мы извлекаем данные из нескольких таблиц. Когда мы используем предложение USING, это конкретное имя столбца должно присутствовать в обеих таблицах, а запрос SELECT будет автоматически соединяться с этими таблицами, используя указанное имя столбца в USING.

например. если в таблице есть два общих имени столбца, то укажите название нужного общего столбца в предложении USING

USING также используется при выполнении Dynamic SQL.

например.

EXECUTE IMMEDIATE 'DELETE FROM dept WHERE deptno = :num'
  USING dept_id; 
  • Предложение USING: это позволяет вам указать ключ соединения по имени.

  • Предложение ON: этот синтаксис позволяет указать имена столбцов для ключей соединения в обеих таблицах.

Предложение USING

Предложение USING используется, если несколько столбцов имеют одно и то же имя, но вы не хотите присоединяться, используя все эти общие столбцы. Столбцы, перечисленные в инструкции USING, не имеют каких-либо квалификаторов в инструкции, включая предложение WHERE.

Предложение ON

Предложение ON используется для объединения таблиц, в которых имена столбцов не совпадают в обеих таблицах. Условия соединения удаляются из условий фильтра в предложении WHERE.