2016-03-29 22 views
0

verileri seçmek için mysql alt sorgu ekleyin:SEÇ aşağıdaki mysql ile bir dağıtım sistemi var dünden

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 

Bu emir belirli statülü bugün meydana seçer. Ne yapmak istiyorum durumuyla dünden tüm sonuçları döndürmek için bir alt sorgu eklemektir 8.

Aşağıdaki alt sorgu çalışacak ama şimdiki sorguya eklemek için nasıl bilmiyorum sanırım:

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

Herkes lütfen?

+0

kullanmayı deneyin 'DATE_ADD()' yerine CURDATE 'ait()'. Yarının tarihi için bir örnek: DATE_ADD (CURDATE(), INTERVAL 1 DAY). Daha fazla bilgiyi şu adreste bulabilirsiniz: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add. –

+0

@ CaleW.Vernon Yardımlarınız için teşekkürler, dün için DATE_ADD kullanıyorum. Çalıştı ancak ikisi birlikte 1 sorguda nasıl kullanacağımı bilmiyorum. – fackz

+0

Uygun oluşturma ve ekleme ifadeleri ve istenen bir sonuç sağlamayı düşünün – Strawberry

cevap

0

Belki böyle bir şey:

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

Aşağıdaki hata var: SQL sözdiziminizde bir hata var; 'GETDATE()) yakınında kullanmak üzere doğru sözdizimi için MySQL sunucu sürümünüze karşılık gelen kılavuzu kontrol edin. ve durum = 8) id_pedido desc' satır 9 satırında – fackz

+0

GETDATE() yerine CURDATE() deneyin? –

+0

Sonuçları gruplamak zorunda kaldım ama işe yaradı! Teşekkürler – fackz