- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
//В рот мне ноги!
SELECT A.id, MAX(B.date) FROM helpdesk_reference as A
JOIN helpdesk_data as B on B.reference_id = A.id and B.date < DATE_SUB(NOW(), INTERVAL 7 DAY) and B.read = 1
JOIN det1order as C on C.orderdate = order_date and C.ordernum = `order` and A.code = C.code and A.ch = C.ch
JOIN det1order as D ON D.orderdate = order_date and D.ordernum = `order` and A.code = D.code and A.ch = D.ch and C.num = -D.num
WHERE status = 3 and acl_id = 4
GROUP BY A.id
UNION ALL (
SELECT A.id, MAX(B.date)
FROM helpdesk_reference as A
JOIN helpdesk_data as B ON B.reference_id = A.id and B.date < DATE_SUB(NOW(), INTERVAL 7 DAY) and B.read = 1
JOIN det1order as C ON `order` = ordernum and order_date = orderdate and C.code = A.code and A.ch = C.ch and A.user = C.user
WHERE acl_id IN(3, 4) and status = 3 and num = realized
GROUP BY A.id
);
heyzea1 10.09.2013 11:29 # 0
DBdev 10.09.2013 12:11 # 0
ЗЫЖ Адепты мускуля, плиз, объясните:
Как это?
tirinox 10.09.2013 12:50 # +8
bormand 10.09.2013 12:52 # 0
DBdev 10.09.2013 13:49 # 0
НЕ понимаю.
Одни AND и в конце hardcoded false => false.
bormand 10.09.2013 14:09 # +2
В общем если в поле `read` лежит 0, false, или пустая строка, то он вернет 1 аля true, если там лежит null, то вернет null, если что-то другое - то 0 аля false. Вот.
Под мягким приведением типа имелось в виду то, что он не гнушается складывать числа и строки и юзать в условиях строки и прочую гадость (включая подзапросы, возвращающие много строк), при этом делая неявные касты.
DBdev 10.09.2013 14:35 # +2
bormand 10.09.2013 15:30 # 0
DBdev 10.09.2013 15:35 # +1
<quote> ::= '
А там каждая СУБД решает нарушать или нет стандарт.
heyzea1 10.09.2013 14:14 # 0
Lennis 10.09.2013 11:52 # +1
crastinus 10.09.2013 14:03 # 0
Базы C и D это фильтры перед UNION ALL. Очевидно, что D убирает чуть больше чем C, тогда зачем же этот C нужен.
Да и сам запрос не понятно для чего. Вывод какой-то статистики по пользователям и номерам?
heyzea1 10.09.2013 14:15 # 0
crastinus 10.09.2013 20:31 # 0
eth0 11.09.2013 19:49 # +3