Объединение одной и той же таблицы

slo_nik

Новичок
Добрый день.
Пожалуйста, помогите довести до ума запрос или подскажите правильное решение.
Есть таблица, в которой хранятся "вакансии" и "резюме"
Надо сделать :
1) Подсчитать кол-во вакансий и резюме по отдельности
2)Вывести последние пять вакансий и резюме
Попробовал сделать такой запрос
PHP:
<?php
/* этот запрос считает кол-во "вакансий" и "резюме" по отдельности 
   будет вложен во второй запрос */ 
$dr_query = "SELECT `direction` AS `direc`, 
              COUNT(`direction`) AS `Tdirec` 
               FROM ".$table_vr." 
              WHERE `status` = 'show'     
           GROUP BY `direction`"; 
/* результат работы запроса 
Array 
( 
    [direc] => вакансия 
    [Tdirec] => 7  // общее кол-во вакансий 
) 

Array 
( 
    [direc] => резюме 
    [Tdirec] => 4 // общее кол-во резюме 
) */ 

/* этот запрос получает необходимые записи в таблице, в него вложен запрос $dr_query. 
   надо изменить этот запрос так, чтобы когда будет выведено 5 последних "вакансий" 
   начался вывод 5 последних резюме */ 
$vr_query = "SELECT `vr`.`id_vr` AS `id_vr`, 
                    `vr`.`subsection` AS `vr_submain`, 
                    `vr`.`direction` AS `vr_direc`,                         
                    `dr`.`Tdirec` 
              FROM (".$dr_query.") AS `dr` 
         LEFT JOIN ".$table_vr." AS `vr` ON(`vr`.`direction` = `dr`.`direc`) 
             WHERE `vr`.`status` = 'show'  
          ORDER BY `vr`.`direction`, `vr`.`id_vr` DESC "; 
/* пока результат работы скрипта такой (это часть вывода, не весь...) 
Array 
( 
    [id_vr] => 6 
    [vr_submain] => фотограф 
    [vr_direc] => вакансия 
    [Tdirec] => 7 
) 

Array 
( 
    [id_vr] => 4 
    [vr_submain] => корреспондент 
    [vr_direc] => вакансия 
    [Tdirec] => 7 
) 

Array 
( 
    [id_vr] => 30 
    [vr_submain] => Не указана. 
    [vr_direc] => резюме 
    [Tdirec] => 4 
) 

Array 
( 
    [id_vr] => 27 
    [vr_submain] => Не указана. 
    [vr_direc] => резюме 
    [Tdirec] => 4 
)*/
Если применить LIMIT 5, то естественно выведет 5 записей(резюме+вакансия), а мне надо 5 "вакансий" и 5 "резюме", в общей сложности 10 записей.
Данные "вакансии" и "резюме" отличаются друг от друга только значением одного поля, где собственно и указывается в каком направлении объявление или "вакансия" или "резюме".
Подскажите, как решить эту задачу?
 

slo_nik

Новичок
В разных если бы они сильно отличались, а так всего в одном поле разница, получается, что будет совершенно две одинаковые таблицы...
Вы хотите сказать, что если в одной таблице, то нет вариантов решить задачу, нельзя ни как указать в запросе вывести сначала 5 резюме, а потом 5 вакансий?
 

С.

Продвинутый новичок
Может и есть, но на сколько оно нужно? Два простых запроса вместо одного сложного это небольшая потеря в эффективности. А если посчитать, то может оказаться и даже наоборот эффективнее. Кроме этого и код становится проще в обслуживании.
 

slo_nik

Новичок
Может и есть, но на сколько оно нужно? Два простых запроса вместо одного сложного это небольшая потеря в эффективности. А если посчитать, то может оказаться и даже наоборот эффективнее. Кроме этого и код становится проще в обслуживании.
Мне интересен вариант сложного запроса, интересно, возможно ли такой путь решения? При выводе информации не нужно будет дублировать html...
Если бы нужно просто вывести пять последних записей, то вопрос уже бы был решён, но мне надо именно разделить, если можно так сказать, LIMIT для "ваканси" и "резюме" в одном запросе...
 

С.

Продвинутый новичок
А какая связь между mySql запросом и html кодом? Если только вы запрос не обрабатываете посередь html кода, и выдавать вакансии и резюме будете без разделителя или заголовочка какого. Ууууу как все тут запущено...
 

slo_nik

Новичок
А какая связь между mySql запросом и html кодом? Если только вы запрос не обрабатываете посередь html кода, и выдавать вакансии и резюме будете без разделителя или заголовочка какого. Ууууу как все тут запущено...
да, посреди кода html буду обрабатывать запрос, выводить буду без разделителя и заголовочка, две таблички, в одной резюме, в другой вакансии. вот из-за этого и заморочка с запросом.
 

С.

Продвинутый новичок
две таблички, в одной резюме, в другой вакансии
Попробую другими словами. Зачем собирать данные в один замороченный запрос, если потом их надо будет по-любому разбирать в PHP коде на две группы?

Хозяйке на заметку: на один SQL запрос всегда выдается один результат. Не бывает такого запроса, который бы выдал два результата.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Не бывает такого запроса, который бы выдал два результата.
//offtop
На самом деле, это не совсем верно, из хранимки можно вернуть множественные наборы, но естественно это к этому вопросу отношения не имеет
 
Сверху