Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Объединение в SQL.
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Объединение в SQL.

Страниц (1): [1]
 

1. Jewish-Man - 26 Сентября, 2011 - 10:20:20 - перейти к сообщению
Здравствуйте.
Помогите пожалуйста с выборкой данных из трех таблиц.
Есть таблицы drivers, location и parameters.
Необходимо все записи из таблицы drivers с 30 по 50 (id допустим в таблице drivers могут не инкремироваться, а рандомно идти. поэтому надо сделать диапазон по записям), а также чтобы в таблице parameters у этих водителей была скорость (поле speed) равна 50 и в таблице location город, в котором они могли едить (поле city) был Piter.
У меня есть некоторые представления, как это сделать(INNER JOIN), все же надеюсь на вашу помощь. Заранее благодарен.
2. EuGen - 26 Сентября, 2011 - 10:26:01 - перейти к сообщению
Определите как связаны между собой таблицы.
3. MrBeard - 26 Сентября, 2011 - 10:33:34 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *
  2. FROM drivers
  3. JOIN location USING(driver_id)
  4. JOIN parameters USING(driver_id)
  5. WHERE `drivers`.driver_id BETWEEN 30 AND 50
  6.     AND `parameters`.speed = 50
  7.     AND `location`.city = "Piter";

примерно так будет, кажется
4. Jewish-Man - 26 Сентября, 2011 - 10:59:01 - перейти к сообщению
MrBeard пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *
  2. FROM drivers
  3. JOIN location USING(driver_id)
  4. JOIN parameters USING(driver_id)
  5. WHERE `drivers`.driver_id BETWEEN 30 AND 50
  6.     AND `parameters`.speed = 50
  7.     AND `location`.city = "Piter";

примерно так будет, кажется


c USING(driver_id) не работает
5. MrBeard - 26 Сентября, 2011 - 11:18:27 - перейти к сообщению
Jewish-Man пишет:
MrBeard пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT *
  2. FROM drivers
  3. JOIN location USING(driver_id)
  4. JOIN parameters USING(driver_id)
  5. WHERE `drivers`.driver_id BETWEEN 30 AND 50
  6.     AND `parameters`.speed = 50
  7.     AND `location`.city = "Piter";

примерно так будет, кажется


c USING(driver_id) не работает


я прислал пример, по которому нужно самому построить СВОЙ запрос. ибо тут никто не может создать запрос без знания структур таблиц. ещё раз - это ПРИМЕР)

 

Powered by ExBB FM 1.0 RC1