2016-03-29 17 views
0

からデータを選択するために、MySQLのサブクエリを追加します。は私がSELECT次の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構文にエラーがあります。 (GETDATE()の近くで使用する正しい構文については、MySQLサーバのバージョンに対応するマニュアルをチェックしてください)) とstatus = 8) order by id_pedido desc 'on line 9 – fackz

+0

GETDATE()ではなくCURDATE –

+0

結果をグループ化しなければならなかったが、うまくいった!ありがとう – fackz

関連する問題