2016-03-29 26 views
0

選擇數據我有一個輸送系統具有以下mysql的選擇:添加一個MySQL子查詢從昨天

SELECT tb_pedido.*,tb_usuarios.nome,tb_usuarios.email,tb_usuarios.cpfcnpj, DATE_FORMAT(data_hora, '%Y-%m-%d') FROM tb_pedido,tb_usuarios where tb_pedido.id_usuario=tb_usuarios.id_usuario and (status=2 OR status=4) and DATE(data_hora) = CURDATE() order by id_pedido desc 

它選擇訂單今天形成特定的狀態。我想要做的是增加一個子查詢與狀態返回從昨天所有結果8.

我想下面的子查詢的工作,但我不知道如何將它添加到當前查詢:

DATE_ADD(DATE(data_hora), INTERVAL -1 day) AND status=8 

有人請嗎?

+0

嘗試使用'DATE_ADD()',而不是'CURDATE()'。明天的例子是:'DATE_ADD(CURDATE(),INTERVAL 1 DAY)'。更多信息可以在http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add找到。 –

+0

@ CaleW.Vernon感謝您的幫助,我使用DATE_ADD獲取昨天的日期。它的工作,但我不知道如何將它們一起用於1查詢。 – fackz

+0

考慮提供正確的創建和插入語句以及期望的結果 – Strawberry

回答

0

也許是這樣的:

SELECT tb_pedido.*,tb_usuarios.nome,tb_usuarios.email,tb_usuarios.cpfcnpj, DATE_FORMAT(data_hora, '%Y-%m-%d') 
FROM tb_pedido,tb_usuarios 

WHERE 
(tb_pedido.id_usuario=tb_usuarios.id_usuario 
and (status=2 OR status=4) 
and DATE(data_hora) = CURDATE()) 
OR 
(DATE(data_hora) = DATEADD(day, -1, convert(date, GETDATE())) 
and status=8) 

order by id_pedido desc 
+0

出現以下錯誤: 您的SQL語法錯誤; ()) and status = 8) order by id_pedido desc'at line 9 – fackz

+0

嘗試使用CURDATE()而不是GETDATE()? –

+0

我必須將結果分組,但它的工作!謝謝 – fackz