X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите объединить 2 запроса...
mangal
mangal
Topic Starter сообщение 21.12.2011, 16:38; Ответить: mangal
Сообщение #1


Здравствуйте помогите пожалуйста объединить 2 запроса...
$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_week' - INTERVAL 1 WEEK AND date < '$this_week' ORDER BY news_read DESC, comm_num DESC LIMIT 0,50" );

и

$db->query( "SELECT id, name, onserver, dcount FROM " . PREFIX . "_files WHERE news_id='{$row['id']}'" );
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Electric
Electric
сообщение 21.12.2011, 20:12; Ответить: Electric
Сообщение #2


По идеи так:
$db->query( "SELECT " . PREFIX . "_post.id, " . PREFIX . "_post.title, " . PREFIX . "_post.date, " . PREFIX . "_post.alt_name, " . PREFIX . "_post.category, " . PREFIX . "_post.flag, " . PREFIX . "_files.id, " . PREFIX . "_files.name, " . PREFIX . "_files.onserver, " . PREFIX . "_files.dcount  FROM " . PREFIX . "_post, " . PREFIX . "_files WHERE ( " . PREFIX . "_post.approve='1' AND " . PREFIX . "_post.date >= '$this_week' - INTERVAL 1 WEEK AND " . PREFIX . "_post.date < '$this_week' AND " . PREFIX . "_files.news_id='{$row['id']}' ) ORDER BY " . PREFIX . "_post.news_read DESC, " . PREFIX . "_post.comm_num DESC LIMIT 0,50
" );

Проверяйте...


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 21.12.2011, 20:28; Ответить: x64
Сообщение #3


объединением занимается оператор UNION
при этом нужно учесть, что оба селекта должны возвращать одинаковое количество рядов (не строк!) одинакового типа
чтобы понятнее было:
SELECT field1, field2, field2 FROM table1
UNION
SELECT field4, field5, field6 FROM table2
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mangal
mangal
Topic Starter сообщение 21.12.2011, 22:28; Ответить: mangal
Сообщение #4


Electric не помогло... нечего не выводит

х64 как надо делать можете сделать???
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
misha111
misha111
сообщение 22.12.2011, 18:14; Ответить: misha111
Сообщение #5


(mangal @ 21.12.2011, 16:38) *
Здравствуйте помогите пожалуйста объединить 2 запроса...
$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_week' - INTERVAL 1 WEEK AND date < '$this_week' ORDER BY news_read DESC, comm_num DESC LIMIT 0,50" );

и

$db->query( "SELECT id, name, onserver, dcount FROM " . PREFIX . "_files WHERE news_id='{$row['id']}'" );


Что значит объеденить? - есть оператор (left, right, inner) join если вы хотите насадить одну таблицу на другую.
Но тут непонятно, как вы делаете связки. news_id второй таблици совпадает с id первой?

если да, то можно будет on (A.id=B.news_id)

Вообще вы крайне плохо пишите sql в такой форме, крайне уязвимо для иньекции, навряд вы там выше по коду делаете проверку. Да и плохо читается. Написав в таком виде на форуме явно говорите - "поломайте меня пожалуйста". Надо сначало делать prepare, а потом execute. А до входа проконтролировать содержимое переменных.
К примеру $row['id'] может быть только число, ограниченное сверху и снизу.

Ещё по sql, там есть оператор between - он сократит длинну вашего запроса.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Сообщение отредактировал misha111 - 22.12.2011, 18:23


--------------------
ввод вывод обмен webmoney paypal www.exchanger.biz.ua
покупка itunes gift card
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 730 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2344 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12529 24.7.2020, 17:02
автор: -JamesSmips-
Открытая тема (нет новых ответов) Помогите с поиском доноров
3 tehno_music 3359 4.11.2019, 17:15
автор: goblin78


 



RSS Текстовая версия Сейчас: 25.4.2024, 3:07
Дизайн