Доброго времени суток. Столкнулся с проблемой. Есть журнал приёма пациентов. Сейчас у него такой вид: Спойлер: таблица Как видите, идет подразделение на тех, кого еще нужно принять (группа 1) и тех, кого уже приняли (группа 2). Как вы можете заметить, в первой группе сортировка идет по времени, а во второй группе - нет. Сейчас у меня такой запрос: PHP: SELECT * FROM таблица WHERE journal_patid IN (SELECT journal_patid FROM таблица WHERE journal_day='{$Today_Array['day_id']}' AND journal_doctor='{$CHOSEN_DOCTOR_ID}' ORDER BY journal_time ASC) ORDER BY journal_ds_text ASC Вопрос - как правильно написать запрос, чтобы вторая группа тоже была отсортирована по времени?
Так, я тут через LEFT JOIN объединил таблицу приёма с таблицей пациентов, получилось отсортировать по времени + по имени: PHP: SELECT * FROM журнал cj LEFT JOIN пациенты cp ON cj.journal_patid=cp.patid_id WHERE cj.journal_day='ид_дня' AND cj.journal_doctor='ид_доктора' ORDER BY cj.journal_time ASC, cp.patid_name Но вот как теперь отсортировать так, чтобы непринятые были выше по приоритету?....
НЕ работает PHP: SELECT * FROM Журнал cj INNER JOIN Пациенты cp ON cj.journal_patid=cp.patid_id WHERE cj.journal_day='ид_дня' AND cj.journal_doctor='ид_доктора' ORDER BY cj.journal_time, cp.patid_name ASC
Хм.. Нет колонки "принят/не принят"... Есть только наличие текста в диагнозе... С этим никак не получится?
Получится. Пустые строки будут выведены первыми Код (Text): SELECT IF( `FileAuthor` = '', 0, 1 ) AS `status` , `table` . * FROM `table` ORDER BY `status`, `time` ASC
Прошу прощения, никак не понимаю, как конструкцию IF можно встроить в inner join? PHP: SELECT IF( `cj.journal_ds_text` = '', 0, 1 ) AS `status`, cj . * FROM Журнал cj INNER JOIN Пациенты cp ON cj.journal_patid=cp.patid_id WHERE cj.journal_day='ид_дня' AND cj.journal_doctor='ид_доктора' ORDER BY cj.journal_time, cp.patid_name ASC
PHP: SELECT IF( cj.journal_ds_text = '', 0, 1 ) AS status, cj . * FROM {$CAOP_JOURNAL} cj INNER JOIN {$CAOP_PATIENTS} cp ON cj.journal_patid=cp.patid_id WHERE cj.journal_day='{$Today_Array['day_id']}' AND cj.journal_doctor='{$CHOSEN_DOCTOR_ID}' ORDER BY status, cj.journal_time ASC ВЫ - ГЕНИЙ! Полный запрос с дополнительной сортировкой по имени: PHP: SELECT IF( cj.journal_ds_text = '', 0, 1 ) AS status, cj . * FROM Журнал cj INNER JOIN Пациенты cp ON cj.journal_patid=cp.patid_id WHERE cj.journal_day='194' AND cj.journal_doctor='1' ORDER BY status, cj.journal_time, cp.patid_name ASC СПАСИБО ВАМ ОГРОМНОЕ
Помогите, пожалуйста, еще разок... Вот смотрите, есть таблица с пациентами, а есть таблица с визитами. Мне нужно посчитать, сколько было визитов у каждого пациента. Я понимаю, что случай банальный, и всё делается через COUNT, но я не могу понять, как правильно сформировать запрос? PHP: SELECT COUNT(cj.journal_id) as visits, cp . * FROM Пациенты as cp INNER JOIN Журнал cj ON cp.patid_id=cj.journal_patid Как правильно сделать?
Чтобы посчитать количество визитов, вам нужна только таблица с визитами. Подразумевается, что у пациента есть уникальный ID Код (Text): SELECT COUNT( `visit_ID` ) FROM `visits` GROUP BY `patient_ID` Вместо `visit_ID` может быть любое поле, и *