MySQL несколько запросов - PullRequest
2 голосов
/ 11 марта 2010

Запрос:

SELECT c.Name
  FROM [Catagories] c

    SELECT c.Name,
           bc.CategoryName
      FROM [Catagories] c
INNER JOIN [Business_Categories] bc ON c.BusinessCategoryID = bc.BusinessCategoryID

Вопрос : Почему бы мне не указать это в WHERE предложении?

Ответы [ 2 ]

1 голос
/ 11 марта 2010

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

Пример запроса:

SELECT 
  c.Name,
  bc.CategoryName
FROM [Categories] c
     [Business_Categories] bc
WHERE
  c.BusinessCategoryID = bc.BusinessCategoryID
0 голосов
/ 11 марта 2010

Предложение ON немного похоже на предложение WHERE в том смысле, что оно фильтрует результаты, но это более выразительный способ написания запроса, поскольку вы явно показываете, что две таблицы связаны очень специфическим образом. Вместо этого можно было бы написать предложение WHERE, и оно дало бы тот же результат и тот же план запросов (при условии, что оптимизатор может это выяснить), но для ясности рекомендуется использовать JOIN.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...