|
|
|
Как при объединение таблиц сделать выборку по нескольким условиям?
|
|||
|---|---|---|---|
|
#18+
Добрый день) Подскажите пожалуйста где ошибка: Условие: есть две таблицы Столбцы первой: id student_id status datetime Столбцы второй: id name surname gender Нужно объединить таблицы и вывести имена студентов чей status = vacation, а gender = unknown. Дело в том что каждому студенту соответствует несколько дат и соответственно статусов. Я написал так: SELECT surname, name, gender, status, datetime FROM student, student_status WHERE student.id = student_status.student_id AND gender = "unknown" AND ((datetime, status) IN (SELECT MAX(datetime) AND status = "vacation") FROM student_status) ORDER BY surname, name, date time Выдает ошибку здесь: AND ((datetime, status) IN (SELECT MAX(datetime) AND status = "vacation") FROM student_status) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 00:48 |
|
||
|
Как при объединение таблиц сделать выборку по нескольким условиям?
|
|||
|---|---|---|---|
|
#18+
Вот как решил) может есть проще и красивее решение? SELECT surname, name, gender, status, datetime FROM student_status, student WHERE (student_id, datetime) IN (SELECT student_id, MAX(datetime) FROM student_status GROUP BY student_id) AND student.id = student_status.student_id AND gender = "unknown" AND status = "vacation" ORDER BY surname, name, datetime ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 01:44 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=90&tid=1831328]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
31ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 378ms |

| 0 / 0 |
