2013-04-30 75 views
-3

如何从两个限制为4的表中从mysql ORDER BY日期出来?我想从这两个表中获得混合ORDER BY date> = DATE(NOW())。在两个表中混合使用mysql

tbl1 
id  place1 date1 
1 | example | 2013-01-05 
2 | example | 2013-07-05 
3 | example | 2013-23-05 

tbl2 
id  place2 date2 
1 | example | 2013-05-05 
2 | example | 2013-06-05 
3 | example | 2013-20-05 
+3

请预期输出添加到您的问题。目前还不清楚你在问什么。 – 2013-04-30 12:09:16

+0

做2个查询并从每个查询中取出前4个,将它们中的每个放入1个数组中,然后对数组进行排序并取前4个。有一种更好的方法可以做到这一点,但这是一种方式 – NoLiver92 2013-04-30 12:10:26

+0

这个混合称为'JOIN '和'ORDER BY rand()'在数据库世界中 – Ejaz 2013-04-30 12:12:06

回答

3
SELECT * 
FROM (SELECT id, place1 place, date1 date 
     FROM tbl1 
     WHERE date1 > CURDATE() 
     UNION 
     SELECT id, place2 place, date2 date 
     FROM tbl2 
     WHERE date2 > CURDATE()) tbl12 
ORDER BY date DESC 
LIMIT 4 
+0

我得到这个错误:#1248 - 每个派生表都必须有自己的别名 – nodde 2013-04-30 12:38:32

+0

你说得对,我忘了别名。现在应该没问题。 – Aioros 2013-04-30 14:47:47