Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.02.2010, 16:09   #1
Bendebej
Форумчанин
 
Регистрация: 21.01.2010
Сообщений: 63
Репутация: 10
По умолчанию Составной запрос, как правильно составить?

Как создать "двойной запрос", так чтобы сначала выполнялось одно условие, потом из подходящих под это условие полей снова выбирались поля
к примеру - мне надо из определенных выбранных текстов(где sectionid=5 and catid=43) выбрать последние по дате публикации (publish_up=(SELECT MAX(publish_up) FROM jos_content))


а запрос через and объединяет запросы в один строгий


FROM `jos_content`
WHERE sectionid=5 and catid=43
and publish_up=(SELECT MAX(publish_up) FROM jos_content)
";


грубо говоря, хочется написать
FROM `jos_content`
WHERE sectionid=5 and catid=43
WHERE publish_up=(SELECT MAX(publish_up) FROM jos_content)
";
но синтаксически это неверно
Bendebej вне форума   Ответить с цитированием
Старый 26.02.2010, 16:41   #2
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Адрес: СПб
Сообщений: 318
Репутация: 132
По умолчанию

Код:

SELECT MAX(publish_up) 
FROM jos_content
WHERE sectionid=5 AND catid=43

__________________
©Учиться, учиться и еще раз учиться!
quit вне форума   Ответить с цитированием
Старый 26.02.2010, 17:47   #3
Bendebej
Форумчанин
 
Регистрация: 21.01.2010
Сообщений: 63
Репутация: 10
По умолчанию

Цитата:
Сообщение от quit Посмотреть сообщение
Код:

SELECT MAX(publish_up) 
FROM jos_content
WHERE sectionid=5 AND catid=43

странно,но выдает пустую страницу, хотя значения в таблице нужные точно есть
Bendebej вне форума   Ответить с цитированием
Старый 26.02.2010, 17:48   #4
soleil@mmc
SQL-коддинг
Профессионал
 
Регистрация: 16.01.2009
Сообщений: 1,192
Репутация: 601
По умолчанию

Код:

SELECT *
FROM jos_content
WHERE sectionid=5 AND catid=43
    and publish_id in (SELECT MAX(publish_up) 
                              FROM jos_content
                              WHERE sectionid=5 AND catid=43)

soleil@mmc вне форума   Ответить с цитированием
Старый 26.02.2010, 18:21   #5
Bendebej
Форумчанин
 
Регистрация: 21.01.2010
Сообщений: 63
Репутация: 10
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
Код:

SELECT *
FROM jos_content
WHERE sectionid=5 AND catid=43
    and publish_id in (SELECT MAX(publish_up) 
                              FROM jos_content
                              WHERE sectionid=5 AND catid=43)

так дает ошибку в строке где уже идет PHP код--
Код:

while($row = mysql_fetch_array($res))

и так тоже

Код:

SELECT *
FROM jos_content
WHERE sectionid=5 AND catid=43
 in (SELECT MAX(publish_up) 
                              FROM jos_content
                              WHERE sectionid=5 AND catid=43)

и так

Код:

SELECT MAX(publish_up)
FROM jos_content
WHERE sectionid=5 AND catid=43
 in (SELECT*   
     FROM jos_content
     WHERE sectionid=5 AND catid=43)

Bendebej вне форума   Ответить с цитированием
Старый 26.02.2010, 18:23   #6
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Адрес: СПб
Сообщений: 318
Репутация: 132
По умолчанию

Ошибку в студию
__________________
©Учиться, учиться и еще раз учиться!
quit вне форума   Ответить с цитированием
Старый 26.02.2010, 18:25   #7
Bendebej
Форумчанин
 
Регистрация: 21.01.2010
Сообщений: 63
Репутация: 10
По умолчанию

Цитата:
Сообщение от quit Посмотреть сообщение
Код:

SELECT MAX(publish_up) 
FROM jos_content
WHERE sectionid=5 AND catid=43

может к дате(типу данных datetime) все таки не подходит функция MAX?
Bendebej вне форума   Ответить с цитированием
Старый 26.02.2010, 18:30   #8
Bendebej
Форумчанин
 
Регистрация: 21.01.2010
Сообщений: 63
Репутация: 10
По умолчанию

Цитата:
Сообщение от quit Посмотреть сообщение
Ошибку в студию

Вот к примеру такой запрос работает

Код:

$query = "SELECT *
 FROM `jos_content`
 WHERE publish_up=(SELECT MAX(publish_up) FROM jos_content) ";

и такой тоже

Код:

$query = "SELECT *
 FROM `jos_content`
 WHERE sectionid=5 AND catid=43 ";

так что дело не в PHP тут
Bendebej вне форума   Ответить с цитированием
Старый 26.02.2010, 18:45   #9
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Адрес: СПб
Сообщений: 318
Репутация: 132
По умолчанию

запросы приведенный мной и soleil@mmc верные, да и текст ошибки ты так и не показал
__________________
©Учиться, учиться и еще раз учиться!
quit вне форума   Ответить с цитированием
Старый 26.02.2010, 18:54   #10
Bendebej
Форумчанин
 
Регистрация: 21.01.2010
Сообщений: 63
Репутация: 10
По умолчанию

Цитата:
Сообщение от quit Посмотреть сообщение
запросы приведенный мной и soleil@mmc верные, да и текст ошибки ты так и не показал
была ошибка в PHP я ее исправил
теперь вывод работает
но выдает одно только пустое значение


Все, спасибо! разобрался
первый вариант дает лишь одну запись из поля
второй как мне и нужно, дает все поле
только там опечатка была, надо publish_up
Код:

SELECT *
FROM jos_content
WHERE sectionid =5
AND catid =43
AND publish_up
IN (

SELECT MAX( publish_up )
FROM jos_content
WHERE sectionid =5
AND catid =43
)


Последний раз редактировалось Bendebej; 27.02.2010 в 00:53.
Bendebej вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить прогамму, отысивающую наименьший общий составной делитель натуральных чисел N и M. Paskal Frontier Помощь студентам 7 16.12.2014 15:01
Как создать правильно запрос .... EugeneIsmatulin SQL, базы данных 15 28.05.2009 09:20
Как правильно составить маску? Pavell PHP 1 05.01.2009 16:58
как правильно составить формулу в Excel? Вики Помощь студентам 2 01.02.2008 13:20


21:11.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru