работает мой пример. я проверял. просто он не решает твою задачу. или ты не понимаешь как его использовать для решения своей задачи. как рецепт и операция связаны? есть вот пара доктор-пациент. доктор выписал пациенту рецепт и потом отправил на операцию по этому рецепту или пациент может на операции оказаться независимо от рецепта? вот это та самая связь которая тут совсем не очевидна. выбрать доктор, пациент, рецепт как документ из рецепты где доктор такой-то и дата между от до объединить выбрать доктор, пациент, протокол как документ из операции где доктор такой-то и дата между от до вот так будет список всех бумажек где есть доктор и всё это уложено в сроки выбрать рецепты-доктор, рецепты-пациент, рецепты-рецепт, операции-протокол из рецепты объединить слева операции по операция-доктор равно рецепт-доктор и операция-пациент равно рецепт-пациент где рецепты-доктор такой-то и дата между от и до вот так список всех рецептов доктора, которые может быть закончились операцией - тогда еще и протоколы вскрытия задача-то какая? ты в два раза больше меня прожил и не научился ясно мысли излагать?
Это не так. Ко мне в голову лезть не надо. Я привел примеры, ты предложи свой вариант. Тут всё предельно ясно на мой взгляд. И не надо приводить схему и тп.... Два запроса я привел в начале, спросил как их выразить в одном запросе... Вот и всё. )) Добавлено спустя 5 минут 58 секунд: Твой пример совсем не туда. Мне не надо посчитать (count). Мне надо SELECT id_patient, id_reception и id_protocol из двух таблиц (receptions и operations_protocols), ГДЕ id_doctor=$id_doctor И date > $start_date И date < $end_date (в обоих таблицах). Добавлено спустя 2 минуты 1 секунду: Не надо грубить. Я не виноват в том, что ты не можешь понять!!! (тут и твоя вина первостепенна).
ну знаешь если б один тебя не мог понять то ладно я тугодум, но тут уже не один человек побывал а тебя до сих пор не разгадали. так и чья вина превостепеннее? вот-вот. тебе пытаются помочь и так и сяк и ты только и пихаешь мол я уже вам всё сказал что нужно и больше вам знать не следует но помочь вы все обязаны.
Пока тут двое - ты и igordata. Я не виноват опять таки )) igordata меня отправил джоины изучать )), ты говоришь "зачем тут джоины". Да, JOIN не работает как надо (именно в моём примере) - работает UNION. Но и UNION выдаёт пустые значения (смотри файл, http://moybufer.ru/2xpucxike4). Я знаю, что JOINом можно решить задачу, только я не знаю как. Если ты знаешь, то подскажи ;-)
да, дениса ты вообще проигнорировал. молодец чо. и обрати внимание как ты любишь обсуждать личности вместо того чтоб отвечать на поставленные вопросы о поставленной в свою очередь тобой же задачей. тебе помощь и не нужна значит. так чисто потрындеть. ты коньячок любишь или виски? или нашу беленькую родненькую?
Ну, зря ты так (. Не потрындеть конечно я сюда написал, а за решениями, которые могут мне подсказать..... Ты сам пока "трындишь" и не понятно чего от меня хочешь. Ладно. Дождемся других посетителей этого форума....
Подытожу: чтобы помочь вам решить данный вопрос, пожалуйста, выложите дамп БД на http://sqlfiddle.com/, так нам будет гораздо проще. Не придётся угадывать, блистать теорией и тд. На практике всё решается гораздо проще.
Я не знаю как там выложить mysql_dump - у нас база большая а там ограничение на аплоуд. НО. ЗАЧЕМ?! Я же просто показал два запроса к базе и спросил как это выразить в одном! Как найти в двух таблицах строки и выдать результат. UNIONом у меня получилось, НО там есть некоторые глюки (пустые поля в строке). Вот я и хотел бы услышать решения как можно этого избежать (пустые поля в строке). (смотри картинку, что я привел выше)
Не бывает идеальных программистов. Нет таких, кто бы сказал: "Эта хрень БУДЕТ работать так". Есть идеи, но их надо протестить. Тестить десятки раз через вас - не идеал. Это часы работы, которые можно сделать за 3 минуты самому.
Я протестю. Предложите свои варианты.... Предложите свой подход. Если он будет мне приемлем то я Вам скажу спасибо .
Извините, но Вас правильно отправили изучать JOIN. INNER JOIN - это то что Вам надо. Так как Вам нужно это: то, наверное подойдет вот этот код Код (PHP): SELECT r.id_patient, r.id_reception, op.id_protocol FROM receptions r INNER JOIN operations_protocols op ON (r.id_patient = op.id_patient AND r.id_doctor = op.id_doctor) WHERE r.date > 1443398400 AND r.date < 1443458873 AND r.id_doctor=21 AND op.date > 1443398400 AND op.date < 1443458873 p.s. В SQL некоторых СУБД, например, PostgreSQL, можно не использовать INNER JOIN, тогда выражение объединения в ON переместится в WHERE. PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
alikmakh сделай экспорт в phpmyadmin, уменьши количество данных и можешь выложить сюда или свои данные заменить на другие для примера. Или выложи на файл обменник.
это единственные люди, которые взялись тебе помогать, и ты их обосрал. =) Добавлено спустя 1 минуту 10 секунд: я уже просил =) он отказался, ибо да, он не умеет. Ему дай и положь и все тупые вокруг. Добавлено спустя 2 минуты 11 секунд: джоин на мой взгляд тут скорее всего нужен, ибо нужно выбрать три колонки из двух таблиц, при этом у запросов совпадает where. Мне кажется это джоин. До выкладки на sqlfiddle больше об этом думать не хочется и не охота лезть в голову другому человеку. Давайте подождём, пока чувак научится не требовать решения, а просить о помощи. Готовые решения тут делают за денюжку, такая традиция сложилась. Не хочешь учиться - плати.
INNER, LEFT,RIGHT,OUTER - приводят к одному и тому же результату в вашем примере - вместо 35 ресепшенов и 2 опреаций найдено 2 операции и два ресепшена. )) Из всех предложенных тут вариантов ни один не рабочий, кроме моего, что с UNION. Добавлено спустя 4 минуты 24 секунды: Вы сами себя же и обосрали. Я на вас не срал - не имею такой привычки. Если нет способности чего-то подсказать, не надо искать причины, которые мешают "хорошему" танцору танцевать .
Не нужны всё перечисленное тобой знающему человеку. Ему достаточно примера, который я привел вверху - два запроса или один с UNION. А вам может ещё и паспорт от меня понадобиться, чтобы убедиться, что я гражданин РФ и только тогда вы сможете мне помочь ;-)
alikmakh ты попадаешь в ловушку когда усложняешь задачу тому кто хочет тебе помочь, и если он будет знающим человеком, то подумает, зачем тебе помогать если ты сам не хочешь помощи. Особенно мне нужно подтверждение, того что у тебя есть гражданство РФ.
Самая забавная тема за последнее время. Уже вторую страницу гадаю чей лоб тверже: автора или отвечающих )) Не, ну на самом деле. Автор сам себе враг, при чем в хронической форме. Нафига? )
Интересно кто закрыл мою тему не форуме?! У меня была тема на форме, там что-то, кто-то обсуждал. Но вдруг её закрыли. Почему?! Без объявления причин - просто закрыли тему и всё тут (!) Никаких нарушений не было (если были, то почему модератор не сказал об этом?!) ПРОСТО ЗАКРЫЛИ и всё тут (!). Модераторы, к вам обращаюсь! Почему закрыли мою тему-то?! А?
Re: Интересно кто закрыл мою тему не форуме?! Потому что достал. Не, могу открыть. Но тебе не понравится.