Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли составить такой ? / 23 сообщений из 23, страница 1 из 1
06.11.2013, 21:13:18
    #38455204
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Имеем таблицу в базе данных.
Город Расстояние
Как составить запрос состоящий из трех колонок?
В первой те города которые находятся на расстоянии меньшем 10км
Во второй - города находящиеся на расстоянии от 10 до 50км
В третьей города находяшиеся на расстоянии больше чем 50км
...
Рейтинг: 0 / 0
07.11.2013, 00:37:44
    #38455350
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Сергей111запрос состоящий из трех колонокЭто что-то новое!
...
Рейтинг: 0 / 0
07.11.2013, 09:10:54
    #38455539
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Знаете, я был рад когда увидел, что пришел ответ.
Но, прочитав его отчаялся. Думаю понятно что я хотел бы получить.
Если есть его решение я был бы благодарен человеку, подсказавшему мне.
Цепляться к словам......
...
Рейтинг: 0 / 0
07.11.2013, 09:43:04
    #38455566
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Код: sql
1.
SELECT (SELECT Town WHERE distance<10) AS col1, (SELECT Town WHERE distance BETWEEN 10 AND 50) AS col2,(SELECT Town WHERE distance>10) AS col3
...
Рейтинг: 0 / 0
07.11.2013, 09:44:22
    #38455569
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Сергей111,

ПС. А при чём здесь раздел "PHP, Perl, Python"?
...
Рейтинг: 0 / 0
07.11.2013, 09:45:23
    #38455571
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Тьфу, Больше 50.
...
Рейтинг: 0 / 0
07.11.2013, 09:47:41
    #38455574
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Опять тьфуты! Ещё надо написать из чего селект, т.е. FROM.
...
Рейтинг: 0 / 0
07.11.2013, 09:52:15
    #38455579
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
ShSerge
Код: sql
1.
SELECT (SELECT Town WHERE distance<10) AS col1, (SELECT Town WHERE distance BETWEEN 10 AND 50) AS col2,(SELECT Town WHERE distance>10) AS col3


Спасибо Вам большое, ShSerge. Как то не подумал, что не туда вопрос вписал. Думаю, что человек знающий PHP, конечно и знает MYSQL. Еще раз спасибо.
...
Рейтинг: 0 / 0
07.11.2013, 10:06:31
    #38455601
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
ShSerge,
Код: php
1.
SELECT (SELECT address from roomservice WHERE coord_x<55.4) AS col1, (SELECT address from roomservice WHERE coord_x BETWEEN 55.4 AND 55.8) AS col2


#1242 - Subquery returns more than 1 row
Я что-то не так делаю?
...
Рейтинг: 0 / 0
07.11.2013, 10:25:59
    #38455627
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Сергей111,

Нет, так не получится. Чё-то я напутал. С похмела, наверное.
Попозже напишу правильное решение.
...
Рейтинг: 0 / 0
07.11.2013, 10:31:00
    #38455633
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Спасибо, буду ждать с нетерпением. Хотя и на этом благодарен.
...
Рейтинг: 0 / 0
07.11.2013, 10:54:17
    #38455672
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Сергей111Знаете, я был рад когда увидел, что пришел ответ.
Но, прочитав его отчаялся. Думаю понятно что я хотел бы получить.
Если есть его решение я был бы благодарен человеку, подсказавшему мне.
Цепляться к словам...... Модератор: Укажите используемую СУБД и желаемый результат запроса. Перенесу топик в профильный подфорум.
...
Рейтинг: 0 / 0
07.11.2013, 11:28:57
    #38455725
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Сергей111,

Нет, так не получится. Чё-то я напутал. С похмела, наверное.
Попозже напишу правильное решение.
...
Рейтинг: 0 / 0
07.11.2013, 11:33:08
    #38455740
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Использую MYSQL.
Хотелось бы иметь
В первой колонке список городов, расстояние до которых меньше 10 км
Во второй города отстоящие на расстоянии от 10 до 50 км
В третьей - на расстоянии больше 50км.
из таблицы с полями:
Город, Расстояние(до него)
Спасибо заранее.
Извините, если что не так.
...
Рейтинг: 0 / 0
07.11.2013, 13:04:16
    #38455937
avlaxoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Сергей111,

Строго говоря, это не есть задача реляционной СУБД. Данные каждого из столбцов можно получить простым запросом вида
Код: sql
1.
 select town_name from town_table where town_distance ...

(здесь нужное условие), а заполнять столбцы уже на клиенте.
...
Рейтинг: 0 / 0
07.11.2013, 13:14:14
    #38455972
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
avlaxoft...Строго говоря, это не есть задача реляционной СУБД. Данные каждого из столбцов можно получить простым запросом вида
Код: sql
1.
 select town_name from town_table where town_distance ...

(здесь нужное условие), а заполнять столбцы уже на клиенте.
Ну, это же не спортивно! :(
ПС. А сделать запросом - фиг получается. Надо процедуру с курсором писать, имхо.
...
Рейтинг: 0 / 0
07.11.2013, 15:14:52
    #38456319
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
avlaxoftСергей111,

Строго говоря, это не есть задача реляционной СУБД. Данные каждого из столбцов можно получить простым запросом вида
Код: sql
1.
 select town_name from town_table where town_distance ...

(здесь нужное условие), а заполнять столбцы уже на клиенте.
Спасибо, ребята. Так и пришлось сделать.
Дело в том, что в 1С такие запросы как то я делал(насколько помню).
Думал может и здесь смогу.
А так я получил три таблицы и разместил рядом.
Еще раз спасибо за участие.

Модератор: Тема перенесена из форума "PHP, Perl, Python".
...
Рейтинг: 0 / 0
07.11.2013, 18:21:55
    #38456765
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Сергей111список городовВ каком виде список?
Перечисление "Москва, Пенза, Казань" как конкатенция строк из нескольких записей в одну или в каждой строке выдачи по одному городу?
...
Рейтинг: 0 / 0
08.11.2013, 09:23:30
    #38457376
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
В виде таблицы:
В первой колонке которой все города отстоящие на расстоянии до 50км
Во второй колонке - все города отстоящие на расстоянии от 10 до 50
В третьей колонке - все города отстоящие на расстоянии большем 50км
Если в какой то колонке городов меньше, чем в других, то после последнего города этой колонки вместо города ставить ".......", или вообще ничего.


Спасибо модератору за перенос топика.
...
Рейтинг: 0 / 0
08.11.2013, 09:28:06
    #38457382
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
vkleСергей111список городовВ каком виде список?
Перечисление "Москва, Пенза, Казань" как конкатенция строк из нескольких записей в одну или в каждой строке выдачи по одному городу?

В каждой строке выдачи по одному городу.
...
Рейтинг: 0 / 0
08.11.2013, 09:46:02
    #38457398
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
Сергей111,

что-то типа этого

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select max(town1) as town1, max(town2) as town2, max(town3) as town3
from

(SELECT @i := @i + 1 AS row_number, Город as town1, null as town2, null as town3 
FROM T, (select @i:=0)
where Расстояние<10

union all

SELECT @i := @i + 1 AS row_number, null as town1, Город as town2, null as town3 
FROM T, (select @i:=0)
where Расстояние between 10 and 50

union all

SELECT @i := @i + 1 AS row_number, null as town1, null as town2, Город as town3 
FROM T, (select @i:=0)
where Расстояние>50) a

group by row_number
...
Рейтинг: 0 / 0
08.11.2013, 10:17:00
    #38457426
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
qwerty112Сергей111,

что-то типа этого

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
select max(town1) as town1, max(town2) as town2, max(town3) as town3
from

(SELECT @i := @i + 1 AS row_number, Город as town1, null as town2, null as town3 
FROM T, (select @i:=0)
where Расстояние<10

union all

SELECT @i := @i + 1 AS row_number, null as town1, Город as town2, null as town3 
FROM T, (select @i:=0)
where Расстояние between 10 and 50

union all

SELECT @i := @i + 1 AS row_number, null as town1, null as town2, Город as town3 
FROM T, (select @i:=0)
where Расстояние>50) a

group by row_number


Да, кажется должно работать. Спасибо, сей же час проверю.
...
Рейтинг: 0 / 0
08.11.2013, 12:22:36
    #38457654
Сергей111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли составить такой ?
qwerty112

Спасибо огромное и всем остальным.
Немного с поправками но в целом верно.
Вот как получилось для двух колонок:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
select max(town1),max(town2) from
(
select row_number,town1, town2
from

(select @i := @i + 1 AS row_number, address as town1, null as town2
FROM roomservice, (select @i:=0) as c1
where coord_x<55.6) as t1

union all

(SELECT @j := @j + 1 AS row_number, null as town1, address as town2
FROM roomservice, (select @j:=0) as c2
where coord_x between 55.6 and 55.8)
) as b
group by row_number
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли составить такой ? / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]