|
|
|
Просьба помочь сделать выборку
|
|||
|---|---|---|---|
|
#18+
Добрый вечер, Есть таблица: |--id--|----------name---------|--is_child--|-id_clinic--|-id_doctor-| -------------------------------------------------------------------- |--1--|-Иванов Иван Иванович-|--true-----|----1-----|----1------| |--2--|-Иванов Иван Иванович-|--true-----|----2-----|----1------| |--3--|-Иванов Иван Иванович-|--false---- |----1-----|----2----- | |--4--|-Петров Петр Петрович- |--true-----|----1-----|----3----- | |--5--|-Петров Петр Петрович-|--false-----|----2-----|----4----- | |--6--|-Петров Петр Петрович-|--false-----|----3-----|----4----- | ... У детского и взрослого докторов разные id Доктор Иванов Иван Иванович принимает детей в клинике 1 и 2, взрослых - только в 1 Доктор Петров Петр Петрович принимает детей в клинике 1, взрослых - клиниках 1 и 2. Просьба помочь выбрать доктора по ФИО рядом с id как детского, так и взрослого: |--id_doctor1--|--id_doctor2--|----------name---------| -------------------------------------------------------- |-------1------|-------2------|-Иванов Иван Иванович| |-------3------|-------4------|-Петров Петр Петрович | ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2016, 21:07 |
|
||
|
Просьба помочь сделать выборку
|
|||
|---|---|---|---|
|
#18+
Уточняю задачу: Есть таблица с докторами, в ней: 1. доктора, работающие как с детьми, там и со взрослыми. Это 2 отдельных записи с разными doctor_id. При этом как взрослый и как детский доктор может работать в разных клиниках. 2. доктора, работающие только с детьми. 3. доктора, работающие только со взрослыми. Нужно по ФИО выбрать именно тех докторов, которые работают как детским, так и взрослым доктором одновременно. Иванов и Петров как раз такие доктора, и рядом с их ФИО нужно выбрать их id_doctor1 (id детского доктора) и id_doctor2 (id взрослого доктора). Тех докторов, которые только детские или только взрослые, выводить не нужно. По сути id_clinic не играет роли. Имеет значение только признак is_child. Могу выбрать только отдельно взрослых, одновременно детских с их id: Код: plsql 1. 2. 3. 4. 5. 6. И также только детских, одновременно взрослых с их id: Код: plsql 1. 2. 3. 4. 5. 6. Теперь осталось склеить эти результаты по ФИО доктора. Возможно ли все это сделать одним запросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2016, 19:08 |
|
||
|
Просьба помочь сделать выборку
|
|||
|---|---|---|---|
|
#18+
Viacheslav_mihalich, Join же, не? Ну и плюс удалить лишние условия из запросов. Что-то вроде Код: plsql 1. 2. 3. 4. 5. 6. 7. Может быть, DISTINCT можно в подзапросы перенести, нужно планы запроса смотреть. Доктора будут размножаться, если у них id_doctor в разных клиниках разные. Но тут уже с постановкой задачи нужно разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2016, 22:02 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39255296&tid=1997160]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 481ms |

| 0 / 0 |
