Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 15.07.2010, 20:25   #1
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 243
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
По умолчанию SQL, подскажите плиз

нужно сделать выборку, да так, чтоб в одном значении была не переменная, а массив. Делал примерно так:

SELECT f, gf, k, (SELECT sd, g FROM rgervc), kj FROM sdfg;

проблема в том, что всё нужно сделать одним запросом.

Возможно такое?
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 15.07.2010, 20:49   #2
Эксперт
 
Аватар для Anadonam
 
Регистрация: 29.10.2009
Адрес: Вологда and SSHA
Сообщений: 3,897
Вес репутации: 353
Anadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущее
Отправить сообщение для Anadonam с помощью ICQ
По умолчанию

нет так нельзя

до слова from должны быть константы (это имена полей для вывода)
то как сделал ты их количество будет неопределено

это делается чуть чуть подругому но надо чтобы таблицы sdfg и rgervc были связаны (что скорее всего так и есть) - вощем тебе надо узнать почему базы данных называются реляционными )..

если кратко)..


ps/ если чесно - ты самто хоть понял чего составил - ведь бред )..
эт всё жара наверно ..)

Последний раз редактировалось Anadonam; 15.07.2010 в 20:51. Причина: Добавлено сообщение
Anadonam вне форума   Ответить с цитированием
Старый 15.07.2010, 20:56   #3
Эксперт
 
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 242
eresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущее
По умолчанию

Будет правильнее если ТС расскажет что он делает (задачу), тогда будет понятно как это можно сделать.

"Массив" получить можно (например в виде строки), только это геморно и я не помню как (кажется это называется "функции агрегации", но может и ошибаюсь).

Но главное - я даже не могу представить когда такое может понадобиться
__________________
Партнёрка знакомств с блоком SAPE. Сапа без расходов на хостинг!
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS)
eresik вне форума   Ответить с цитированием
Старый 15.07.2010, 21:14   #4
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 243
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
По умолчанию

есть около 5-7 таблиц, которые все между собой переплетаются. и вот для одного вывода нужно получать список значений из таблицы

Добавлено через 1 минуту
вобщем пытался так:
PHP код:
$result mysql_query("SELECT product.*, spp.name as name_pic, spp.width, spp.height, spo.id_option, (SELECT spo2.value, opt2.title FROM shop_product_options as spo2, options as opt2), opt.title as title_opt , opt.type as type_opt , opt.if_select as if_select_opt, opt.filter_type as filter_type_opt, categ.id as categ_id, categ.alias as categ_alias, categ.title as categ_title
            FROM
                  shop_categs as categ,
                  shop_products as product,
                  shop_categ_products as scp,
                  site_shop_categ as ssc,
                  shop_product_pics as spp,
                  shop_product_options as spo,
                  options as opt
            WHERE
                  ssc.id_site = 1 AND
                  ssc.id_categ = categ.id AND
                  categ.id = scp.id_categ AND
                  scp.id_product = product.id AND
                  spp.id_product = product.id AND
                  (spp.width='100' or spp.height='100') AND
                  categ.id=1 AND 
          product.f_spec=1 AND
          product.active = 1 AND
                  spo.id_product = product.id AND
                  opt.show_in_list = 1 AND
                  opt.id = spo.id_option
                  GROUP by product.id
    "
); 
__________________
Как дела?

Последний раз редактировалось Русская мафия; 15.07.2010 в 21:14. Причина: Добавлено сообщение
Русская мафия вне форума   Ответить с цитированием
Старый 15.07.2010, 21:49   #5
Эксперт
 
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 242
eresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущееeresik - прекрасное будущее
По умолчанию

В общем, если охота поизвращаться, то http://webi.ru/webi_articles/8_14_f.html

А "по нашему" - надо делать отдельными подзапросами.
У вас и так запрос "не слабый"

Кстати, у меня тоже вопрос.
Как проще всего обменять значения в двух строках?
idN значение1
idM значение2

надо поменять местами значение1 и значение2 в двух известных строках (для двух известных id).
__________________
Партнёрка знакомств с блоком SAPE. Сапа без расходов на хостинг!
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS)
eresik вне форума   Ответить с цитированием
Старый 16.07.2010, 03:08   #6
Починяю примуса
 
Аватар для Atomic
 
Регистрация: 26.09.2008
Сообщений: 1,505
Вес репутации: 285
Atomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущее
По умолчанию

сломался телепатический ментальный дебаггер на "для одного вывода", для одного запроса м.б?
так и в чем проблема?
while($res=mysql_fetch_assoc($result)) {
$res[..]
}
__________________
Починяю разнокалиберные примуса здесь.
Atomic вне форума   Ответить с цитированием
Старый 16.07.2010, 13:35   #7
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 243
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Atomic Посмотреть сообщение
для одного запроса м.б?
угу)

Цитата:
Сообщение от Atomic Посмотреть сообщение
while($res=mysql_fetch_assoc($result)) {
$res[..]
}
нужно всего один запрос сделать, чтоб получить что то такое:

PHP код:
$mas[0]=>1;
$mas[1]=>1;
$mas[2]=>2;
$mas[3]=>2;
$mas[4]=>$mas2[0]=>21;
        
$mas2[1]=>54;
        
$mas2[2]=>121;
               .....
$mas[5]=>1;
...... 
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 16.07.2010, 13:41   #8
Новичок
 
Регистрация: 25.05.2010
Сообщений: 34
Вес репутации: 171
Artemon2010 скоро станет известенArtemon2010 скоро станет известен
По умолчанию

если принципиально 1 запрос и не важно сколько времени потом разбирать
SELECT f, gf, k, kj FROM sdfg
union
SELECT XXX as tag1,YYY as tag2, sd, g FROM rgervc ;

потом руками разобрать

XXX as tag1 - сколько надо добавиь по смыслу
фильтровать в ПХП по ним же
на MуSQL 3.1-3.2.х, кажется, не будет работать - там в UNION баг
Artemon2010 вне форума   Ответить с цитированием
Старый 16.07.2010, 13:43   #9
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 243
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
По умолчанию

Цитата:
Сообщение от eresik Посмотреть сообщение
В общем, если охота поизвращаться, то http://webi.ru/webi_articles/8_14_f.html
вооот оно!
то что нужно, спасибо)
Как и я пытался делать, только с групировкой:

PHP код:
SELECT DISTINCT `name` as `name1`, 
(
select GROUP_CONCAT(`pet`) as `petfrom `testwhere `name` = `name1` )as `pet`
FROM `test
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 17.07.2010, 11:55   #10
Специалист
 
Аватар для Андрей Барыкин
 
Регистрация: 04.03.2009
Адрес: GOA
Сообщений: 136
Вес репутации: 194
Андрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личностьАндрей Барыкин - просто великолепная личность
Отправить сообщение для Андрей Барыкин с помощью ICQ
По умолчанию

Цитата:
Сообщение от Русская мафия Посмотреть сообщение
нужно сделать выборку, да так, чтоб в одном значении была не переменная, а массив. Делал примерно так:

SELECT f, gf, k, (SELECT sd, g FROM rgervc), kj FROM sdfg;

проблема в том, что всё нужно сделать одним запросом.

Возможно такое?
Использовать хранимую функцию, если MySQL версии 5.0 и выше.
Ну или Union, как уже советовали.

Цитата:
Сообщение от eresik Посмотреть сообщение
Кстати, у меня тоже вопрос.
Как проще всего обменять значения в двух строках?
idN значение1
idM значение2

надо поменять местами значение1 и значение2 в двух известных строках (для двух известных id).
В чем, конкретно, проблема? Или вы чего-то по условиям не договариваете аля: без лишней переменной, одним запросом(правда не знаю, зачем это нужно). И зачем это вообще надо, задача какова?
Андрей Барыкин вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите плиз Daemon Курилка 1 27.05.2010 18:59
Подскажите по железу плиз.. Йода Курилка 4 18.03.2010 09:17
Подскажите, плиз, как добавлять страницы? doctor1984 Вопросы от новичков 2 12.10.2009 01:20
Подскажите новичку плиз domperignon Вопросы от новичков 23 13.01.2009 12:44
Подскажите дурачку плиз:) lexus66628 Вопросы от новичков 9 23.09.2008 15:41


Часовой пояс GMT +3, время: 11:25.