|
|
|
|
|
для: Trianon
(03.07.2006 в 20:46)
| | Не знаю, у меня не идет... Версия у меня 4.1.
Может, я поля неправильно менял? Пробовал и с s1.name, пробовал и street_1.name, и street_1.buy, ничего... А вообще, такая же схема, как и в тех запросах (выше), но надо одновременно спросить данные для трех таблиц. | |
|
|
|
|
|
|
|
для: FiX
(03.07.2006 в 00:55)
| | У меня вариант (30.06.2006 в 18:52) идет на ура. Если исправить опечатку, заменив в s1,name запятую на точку.
Что у Вас за версия сервера? Сдается мне, она настолько древняя, что вложенные запросы не поддерживает, раз такой простой не смогла взять. | |
|
|
|
|
|
|
|
для: FiX
(01.07.2006 в 18:20)
| | Ну пожалуйста, ведь для кого-то этот запрос очень легкий =) | |
|
|
|
|
|
|
|
для: cheops
(30.06.2006 в 18:46)
| | Попробуйте дать пример вложенного запроса, пожалуйста, может, хотя бы он поможет... | |
|
|
|
|
|
|
|
для: 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 и выше... | |
|
|
|
|
|
|
|
для: 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
|
| |
|
|
|
|
|
|
|
для: FiX
(30.06.2006 в 17:42)
| | У вас MySQL выше версии 4.1 или ниже? Т.е. имеется возможность использовать вложенные запросы? | |
|
|
|
|
|
|
|
для: cheops
(30.06.2006 в 11:46)
| | Как мы уже говорили, названия улиц хранятся в таблице streets. Так вот, а в другой таблице (buy) вместо названия улиц стоят просто их id (например, у улицы Мира id - 2, и т.д.). Думаю, это понятно. Во второй таблице полей с "улицами" три. У каждого из полей разные улицы, например (id): 2, 8, 6. Для этих трех мне и надо вытащить названия улиц. Как я уже писал, подобный запрос выводит только последнюю улицу, то есть, например, 6.
Думаю, понятно... :) | |
|
|
|
|
|
|
|
для: 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
|
выводит только последнее название улицы... Помогите, пожалуйста. | |
|
|
|
|