Лучший способ выполнить вложенный SQL-запрос? - PullRequest
1 голос
/ 20 марта 2012

Прямо сейчас я реализую следующий sql-запрос для iphone-приложения и использую HTTP GET. SQL-запрос не содержит объединений, поэтому достаточно ли он эффективен?

SELECT
   menu_name 
FROM Menus
WHERE 
  menu_id IN (
    SELECT
      menus_id 
    FROM Restaurants_Menus 
    WHERE Restaurants_id = '$restaurantID'
  )

1 Ответ

2 голосов
/ 20 марта 2012

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

SELECT
  Menus.menu_name
FROM 
  Menus
 JOIN Restaurants_Menus ON Menus.menu_id = Restaurants_Menus.menus_id
WHERE Restaurants_Menus.Restaurants_id = '$restaurantID'

Вы можете запустить их обоих с помощью EXPLAIN, чтобы определить, где используются индексы, и оценить время выполнения запроса. Если Restaurants_Menus не является большой таблицей, а Restaurants_id является первичным ключом, два запроса вряд ли будут сильно отличаться по времени выполнения.

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