|
|
|
| есть таблица:
id object_id date
1 1 12.05.06
2 1 14.07.06
3 2 21.08.07
4 2 29.03.08
5 2 25.04.08
Можно ли написать запрос, чтобы получить:
object_id date1 date2 date3
2 21.08.07 29.03.08 25.04.08
Заранее спасибо! | |
|
|
|
|
|
|
|
для: kireyev
(26.07.2010 в 11:15)
| | можно
SELECT * FROM tab WHERE object_id date=$date1
OR object_id date=$date2
OR object_id date=$date3
поле object_id date какого типа? | |
|
|
|
|
|
|
|
для: Valick
(26.07.2010 в 11:27)
| | DATE (dd.mm.yy) | |
|
|
|
|
|
|
|
для: kireyev
(26.07.2010 в 11:29)
| | сейчас перечитал вопрос и понял что ничего не понял, опишите назначение полей и что вы хотите сделать словами. | |
|
|
|
|
|
|
|
для: Valick
(26.07.2010 в 11:32)
| | id(int) object_id(int) date(date)
требуется выбрать все значения с object_id=2 в таблицу вида
object_id date1 date2 date3 | |
|
|
|
|
|
|
|
для: kireyev
(26.07.2010 в 11:55)
| | фу ты ну ты :)
ставте между названиями полей | а еще лучше дамп тпблицы.
SELECT * FROM tab WHERE object_id=2
выбирает как раз то что Вам нужно | |
|
|
|
|
|
|
|
для: kireyev
(26.07.2010 в 11:29)
| | >DATE (dd.mm.yy)
Что это за веселый тип такой?
Или может быть что это за СУБД? | |
|
|
|
|
|
|
|
для: Trianon
(26.07.2010 в 11:42)
| | поливать тока не надо, это тип DATE (дата) | |
|
|
|
|
|
|
|
для: kireyev
(26.07.2010 в 11:56)
| | не спорьте с Трианоном, а внимально ловите каждое его слово... если он не доволен чем-то, то ищите ошибку.
DATE (yyyy-mm-dd)
расскажите о сущности этого поля, просто гораздо чаще используется DATETIME или TIMESTAMP | |
|
|
|
|
|
|
|
для: Valick
(26.07.2010 в 12:24)
| | Да в поле DATE хранится дата: день, месяц, год... и все | |
|
|
|
|
|
|
|
для: kireyev
(26.07.2010 в 13:10)
| | Я Вас попросил рассказать о сущности этого поля... что это за дата? (день рождения (DATE), прием врача (DATETIME), потеря девственности (TIMESTAMP) и тд.)
и Вы упорно продолжаете писать день, месяц, год... - это не дата для MySQL
для MySQL дата это год - месяц - день (именно в такой последовательности и именно через тире и именно тип поля DATE) | |
|
|
|
|
|
|
|
для: Valick
(26.07.2010 в 13:31)
| | Прошу прощения, поле DATE это именно "день рождения" год-месяц-день | |
|
|
|
|
|
|
|
для: Valick
(26.07.2010 в 11:27)
| | "
можно
SELECT * FROM tab WHERE object_id date=$date1
OR object_id date=$date2
OR object_id date=$date3
поле object_id date какого типа?
"
В данном слуяае выведутся три строки, мне нужна одна строка, но так чтобы в ней появились столбцы date1, date2, date3
при этом object_id у всех одинаково (=2)
Такое возможно? | |
|
|
|
|
|
|
|
для: kireyev
(26.07.2010 в 13:56)
| | этот запрос совсем неправильный... я просто в названиях полей запутался
SELECT * FROM tab WHERE object_id=2
этим запросом вы извлекаете данные (результатом запроса является таблица, хоотя спор по этому поводу так и не завершился)
выведутся три строки, мне нужна одна строка
дальше вы можете собирать эту таблицу в строку
раскажите пожалуйста зачем нужен вывод этих дат именно в одну строку и именно в самом запросе? честно скажу незнаю можно ли такое сделать, но вот зачем это нужно я пока не представляю. | |
|
|
|
|
|
|
|
для: Valick
(26.07.2010 в 14:04)
| | Вы поняли что я хочу? Можете помочь? | |
|
|
|
|
|
|
|
для: kireyev
(26.07.2010 в 14:10)
| | я собственно говоря и помогаю, и для того чтобы дать правилный ответ задаю дополнительные вопросы, а не потому что мне абсолютно нехрен делать) | |
|
|
|
|
|
|
|
для: Valick
(26.07.2010 в 14:15)
| | а помощи все нет и нет... видимо задачка не выполнимая. спасибо. | |
|
|
|
|
|
|
|
для: kireyev
(27.07.2010 в 11:44)
| | Очевидно, что ответ, который Вы пытаетесь получить по первоначальной формулировке, должен иметь переменное количество столбцов, зависящее от числа строк одного объекта в таблице.
Такими запросами MySQL (и любая реляционная СУБД) не оперирует, поскольку число столбцов (атрибутов) в реляционной модели - фиксировано изначально. | |
|
|
|
|
|
|
|
для: Trianon
(27.07.2010 в 12:03)
| | При помощи хранимой процедуры можно создать временную таблицу сделать нужную выборку добавлять в цикле поле и значение во временную таблицу, а затем вернуть результат одной строкой?
Я понимаю что бред, но чисто теоритически? :) | |
|
|
|
|
|
|
|
для: Valick
(27.07.2010 в 12:53)
| | Одной строкой можно и проще результат вернуть, без нарушения модели, например, с помощью GROUP_CONCAT, только зачем?
Последовательными mysql_fetch_assoc любой одномерный результат спокойно расхлебывается в двумерный выход без лишних наворотов и усложнений.
Проблема же не в том, что невозможно сделать то, что автор просит.
Проблема в том, что автору это не нужно.
А чисто теоретически - нельзя. Теория реляционных баз данных - штука твердая.
Чисто практически можно. Но не нужно. | |
|
|
|
|
|
|
|
для: Trianon
(27.07.2010 в 13:24)
| | GROUP_CONCAT - во блин... опять прошляпил функцию.
>Проблема в том, что автору это не нужно.
вот я у него и спрашиваю зачем это нужно, что бы найти и указать ошибку в логике.
Искал что-нибудь подобное в агрегатных функциях, а она наверно идет отдельной статьей
http://webi.ru/webi_articles/8_14_f.html | |
|
|
|
|
|
|
|
для: kireyev
(27.07.2010 в 11:44)
| | Вы сначала ответьте на мой дополнительный вопрос, а потом уж и помощи ждите.
Ситуацию когда требуется вывести значения трех строк одной строкой именно в запросе я себе не представляю, а раз не представляю, то и думать в этом направлении считаю бессмысленным. | |
|
|
|
|
|
|
|
для: Valick
(27.07.2010 в 12:05)
| | Спасибо, я понял.! | |
|
|
|