2010-07-18 15 views
3

Можно создать дубликат:
In MySQL queries, why use join instead of where?В чем разница между 'where' и different 'join' в mysql?

присоединяется всегда запутанным для me..can кто-нибудь сказать мне, что разница между различными соединениями и который один является быстрым и когда использовать которые соединяют и какая разница между join и where clause? Plz дает ур ответ подробно, как я уже читал о присоединениях на некоторых веб-сайтах, но не получил концепцию должным образом.

ответ

3

Вместо цитировать всю статью Википедии, я собираюсь предложить свой свою статью на SQL Joins.

SQL-JOIN раздел объединяет запись из двух или более таблиц в базе данных . Он создает набор, который может быть сохранен в виде таблицы или использован как есть. A JOIN - это средство для объединения полей из двух таблиц с использованием значений , общих для каждого. Стандарт ANSI SQL определяет четыре типа JOIN: INNER, ВНЕШНИЙ, ЛЕВЫЙ и ПРАВО. В специальных случаях таблица (базовая таблица, вид или соединенная таблица) может присоединяться к самому себе в автономном соединении .

Программист пишет предикат JOIN , чтобы идентифицировать записи для соединения. Если оцененный предикат является истинным, то затем производится комбинированная запись в ожидаемом формате, набор записей или временная таблица, например.

Существует более старый синтаксис, который использует предложения WHERE для обозначения INNER JOIN. Хотя он работает и будет обрабатывать запросы, которые выполняются точно так же, как запросы, заданные с помощью синтаксиса INNER JOIN, он устарел, потому что большинство людей считают его более запутанным.

Вот документация для MySQL JOIN syntax.

2

Этот запрос:

SELECT c.customer_name, o.order_id, o.total 
FROM customers c, orders o 
WHERE c.id = o.customer_id 

и это

SELECT c.customer_name, o.order_id, o.total 
FROM customers c 
INNER JOIN orders o ON c.id = o.customer_id 

не делают никакой разницы на то, что выполняется на MySQL сервер, но соединение является (имхо) способ более удобным для чтения. Expecially для более сложных объединений:

Вот статья на эту тему: http://www.mysqlperformanceblog.com/2010/04/14/is-there-a-performance-difference-between-join-and-where/

Смежные вопросы