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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Одновременный запрос с нескольких таблиц

Сообщения:  [1-10]   [11-17] 

 
 автор: FiX   (03.07.2006 в 23:10)   письмо автору
 
   для: Trianon   (03.07.2006 в 20:46)
 

Не знаю, у меня не идет... Версия у меня 4.1.
Может, я поля неправильно менял? Пробовал и с s1.name, пробовал и street_1.name, и street_1.buy, ничего... А вообще, такая же схема, как и в тех запросах (выше), но надо одновременно спросить данные для трех таблиц.

   
 
 автор: Trianon   (03.07.2006 в 20:46)   письмо автору
 
   для: FiX   (03.07.2006 в 00:55)
 

У меня вариант (30.06.2006 в 18:52) идет на ура. Если исправить опечатку, заменив в s1,name запятую на точку.
Что у Вас за версия сервера? Сдается мне, она настолько древняя, что вложенные запросы не поддерживает, раз такой простой не смогла взять.

   
 
 автор: FiX   (03.07.2006 в 00:55)   письмо автору
 
   для: FiX   (01.07.2006 в 18:20)
 

Ну пожалуйста, ведь для кого-то этот запрос очень легкий =)

   
 
 автор: FiX   (02.07.2006 в 12:45)   письмо автору
 
   для: cheops   (30.06.2006 в 18:46)
 

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

   
 
 автор: FiX   (01.07.2006 в 18:20)   письмо автору
 
   для: Trianon   (30.06.2006 в 18:52)
 

И так не получается :( По разному пробовал менять данные, менял названия столбцов, бесполезно. Сколько часов сидел, все напрасно. Попробую объяснить на пальцах :)

Таблица buy:
улица : id улицы (с таблицы streets)
street_1 : 2
street_2 : 1
street_3 : 3

Таблица streets:
id : название (name)
1 : Мира
2 : Строителей
3 : Советская

То есть, street_1 должна выводить название улицы - Строителей, street_2 - Мира, street_3 - Советская. Я бы использовал вложенный запрос (с использованием while - по три запроса на цикл), но он очень "сложный" для сервера mysql, тем более, если будет таких запросов от 100 и выше...

   
 
 автор: Trianon   (30.06.2006 в 18:52)   письмо автору
 
   для: FiX   (29.06.2006 в 23:01)
 

А так?

SELECT buy.*, s1,name, s2.name, s3.name 
FROM buy, streets as s1, streets as s2, streets as s3
WHERE buy.street_1 = s1.id AND buy.street_2 = s1.id AND buy.street_3 = s3.id

   
 
 автор: cheops   (30.06.2006 в 18:46)   письмо автору
 
   для: FiX   (30.06.2006 в 17:42)
 

У вас MySQL выше версии 4.1 или ниже? Т.е. имеется возможность использовать вложенные запросы?

   
 
 автор: FiX   (30.06.2006 в 17:42)   письмо автору
 
   для: cheops   (30.06.2006 в 11:46)
 

Как мы уже говорили, названия улиц хранятся в таблице streets. Так вот, а в другой таблице (buy) вместо названия улиц стоят просто их id (например, у улицы Мира id - 2, и т.д.). Думаю, это понятно. Во второй таблице полей с "улицами" три. У каждого из полей разные улицы, например (id): 2, 8, 6. Для этих трех мне и надо вытащить названия улиц. Как я уже писал, подобный запрос выводит только последнюю улицу, то есть, например, 6.
Думаю, понятно... :)

   
 
 автор: cheops   (30.06.2006 в 11:46)   письмо автору
 
   для: FiX   (29.06.2006 в 23:01)
 

Чего-то не очень понятно... Как звучит условие выборки на словах?

   
 
 автор: FiX   (29.06.2006 в 23:01)   письмо автору
 
   для: cheops   (29.06.2006 в 02:05)
 

Спасибо, работает! Но вот следующая проблема:
Никак не получается сделать запрос. Есть три улицы: street_1, street_2, street_3. Названия берутся из той же таблицы (streets). Как вытащить эти названия для трех столбов? Запрос вида

SELECT buy.*, streets.name AS streets FROM streets, buy WHERE buy.street_1 && buy.street_2 && buy.street_3 = streets.id GROUP BY buy.id

выводит только последнее название улицы... Помогите, пожалуйста.

   

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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