Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как более оптимально реализовать следующую задачу
 
 автор: pavluxa09   (06.06.2012 в 20:23)   письмо автору
 
 

Здравствуйте, уважаемые программисты. Подскажите пожалуйста, как более оптимально реализовать следующую задачку.

У меня имеется таблица `Игры` и таблица `Ставки`.
В таблице `Игры` следующие поля: `ID игры`, `Создатель ID`, ...
В таблице `Ставки` такие: `ID ставки`, `ID игры`, `Клиент ID`, ...

У меня в таблице `Игры` очень очень много строк.
Мне необходимо составить запрос, при помощи которого получить все поля таблицы `Игры`, у которых в таблице `Ставки` есть `Клиент ID` равный 50.

Само собой между двумя таблицами существует взаимосвязь по полю `ID игры`.

Пожалуйста, помогите правильно составить SQL запрос, при помощи которого можно это самое оптимально сделать. Буду очень признателен

  Ответить  
 
 автор: cheops   (06.06.2012 в 21:02)   письмо автору
 
   для: pavluxa09   (06.06.2012 в 20:23)
 

В самом простом варианте можно воспользоваться запросом вида
SELECT * FROM `Игры`
WHERE `ID игры` IN
   (SELECT `ID игры` FROM `Ставки` WHERE `Клиент ID` = 50)

  Ответить  
 
 автор: pavluxa09   (07.06.2012 в 16:37)   письмо автору
 
   для: cheops   (06.06.2012 в 21:02)
 

А что это за оператор IN?

  Ответить  
 
 автор: cheops   (07.06.2012 в 16:48)   письмо автору
 
   для: pavluxa09   (07.06.2012 в 16:37)
 

Он позволяет проверить входит ли значение в список, например,
SELECT * FROM `Игры` 
WHERE `ID игры` IN (1, 3, 5, 9, 12, 34)

В примере выше такой список формируется вложенным запросом.

  Ответить  
 
 автор: pavluxa09   (08.06.2012 в 15:39)   письмо автору
 
   для: cheops   (07.06.2012 в 16:48)
 

Понял, спасибо большое!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования