В чем разница между использованием нескольких исходников и объединений? - PullRequest
3 голосов
/ 09 мая 2009

Скажите, у меня есть этот запрос:

SELECT bugs.id, bug_color.name FROM bugs, bug_color
    WHERE bugs.id = 1 AND bugs.id = bug_color.id

Зачем мне использовать соединение? И как бы это выглядело?

Ответы [ 3 ]

3 голосов
/ 09 мая 2009

Соединения - синтетический сахар, их легче читать.

Ваш запрос будет выглядеть следующим образом:

SELECT bugs.id, bug_color.name 
FROM bugs
INNER JOIN bug_color ON bugs.id = bug_color.id
WHERE bugs.id = 1

Объединение более двух таблиц помогает сделать запрос более читабельным, сохраняя условия, связанные с таблицей в одном месте.

2 голосов
/ 09 мая 2009

Ключевое слово join - это новый способ объединения таблиц.

Когда я выучил SQL, его еще не было, поэтому объединение было выполнено так, как показано в вашем вопросе.

В настоящее время у нас есть такие вещи, как объединения и псевдонимы, чтобы сделать запросы более читабельными:

select
    b.id, c.name
from
    bugs as b
inner join
    bug_color as c on c.id = b.id
where
    b.id = 1

Также существуют другие варианты объединений, такие как left outer join, right outer join и full join, которые сложнее реализовать со старым синтаксисом.

0 голосов
/ 09 мая 2009

Синтаксис объединения допускает внешние объединения, поэтому вы можете перейти:

SELECT bugs.id, bug_color.name 
FROM bugs, bug_color 
LEFT OUTER JOIN bug_color ON bugs.id = bug_color.id
WHERE bugs.id = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...