Я пытаюсь получить правильные записи, но по какой-то причине у меня возникла проблема с пунктом «Наличие», я думаю, кто-нибудь может мне помочь?
СЛУЧАЙ 1: попытка выбрать строки, где order_id = 1 (новый заказ), но не должно быть более 1 записи с одинаковым идентификатором заказа.
СЛУЧАЙ 2: выберите строки, где order_id = 2 (печатный заказ), но также следует выбрать новые заказы и применить СЛУЧАЙ 1, другими словами, запрос должен выбрать, где order_id=2 ИЛИ где order_id=1, если (order_id = 1, тогда не должно быть более 1 записи с одинаковым идентификатором заказа)
У меня есть таблица, в которой:
order_id = идентификатор заказа
status_id = другой идентификатор статуса, например, 1 = новый, 2 = напечатанный, 3 = в обработке и т. д...
status_change_by = идентификатор администратора, который изменить статус заказа с нового на распечатанный на обработку...
order_id | status_id | status_change_by
1 | 1 | (NULL)
1 | 2 | 12
1 | 3 | 12
2 | 1 | (NULL)
3 | 1 | (NULL)
4 | 1 | (NULL)
1 | 4 | 13
5 | 1 | (NULL)
3 | 2 | (NULL)
Вот мой простой запрос mySQL:
SELECT * from order_tracking
where status_id = 1
group by order_id
having count(order_id) <= 2;
Я даже создал скрипт SQL для справки, проверьте, не ошибаюсь ли я, или мне нужен сложный запрос с операторами CASE или IF?
http://sqlfiddle.com/#!2/16936/3
Если эта ссылка не работает, создайте ее по этому коду:
CREATE TABLE order_tracking
(
track_id int auto_increment primary key,
order_id int (50),
status_id int(20),
status_changed_by varchar(30)
);
Вот вставка:
INSERT INTO order_tracking
(order_id, status_id, status_changed_by)
VALUES
(1,1,''),
(1,2,12),
(1,3,12),
(2,1,''),
(3,1,''),
(4,1,''),
(1,4,13),
(5,1,''),
(3,2,'');
Ваш самый ранний ответ должен быть оценен! Спасибо за время.
Желаемый результат:
Случай:1, что довольно просто, результат должен быть примерно таким: Только новые заказы с не более чем 1 записью
Order_id | status_id | status_changed_by
2 | 1 | (NULL)
4 | 1 | (NULL)
3 | 1 | (NULL)
Случай 2. Результат:
Order_id | status_id | status_changed_by
1 | 4(max id)| (NULL)
2 | 1 | (NULL)
4 | 1 | (NULL)
3 | 2(max id)| (NULL)
edit
). - person PM 77-1   schedule 09.10.2014order_id
, а неstatus_id
. - person PM 77-1   schedule 09.10.2014