2011-11-02 79 views
1

我得到了我的工会声明以我想要的方式工作,但我似乎无法得到它订购2表没有错误。php mysql union order by

$query = mysql_query("SELECT userid_2 FROM messages WHERE userid_1='$dbid' UNION SELECT userid_1 FROM messages WHERE userid_2='$dbid'"); 

我试图将ORDER BY日期合并到它中,但它似乎不起作用。

感谢

+1

你得到的错误是什么? – Neal

+1

http://stackoverflow.com/questions/7881587/query-is-not-being-sorted-properly/7881698#7881698 –

+0

警告:mysql_num_rows()期望参数1是资源,布尔在/ home/skycityc/public_html中给出/pages/messages.php on line 141 –

回答

0

你尝试过:

$query = mysql_query(" 
     SELECT * FROM (
     SELECT userid_2,date FROM messages 
     WHERE userid_1='$dbid' 
     UNION 
     SELECT userid_1, date 
     FROM messages 
     WHERE userid_2='$dbid' 
    ) as table1 
ORDER by table1.date"); 

编辑:
根据您的评论如下,我会做这样的事情:

 SELECT * FROM (
     SELECT userid_1,userid_2 FROM messages 
     WHERE userid_1='$dbid' 
     ORDER BY date ASC) as table1 
     UNION 
     SELECT * FROM (
     SELECT userid_1,userid_2 
     FROM messages 
     WHERE userid_2='$dbid' 
     ORDER BY date ASC) as table2 
+0

ID必须改变这个唯一的事情就是我试图对它进行排序的字段?那么table1.date?如果这样也行不通。同样的错误。 –

+0

是的,我编辑了查询,你还需要从“内部”查询中选择日期......否则你不能按日期排序......现在尝试......我试着在一个示例表中工作...... – Marcx

+0

已经订购了它,但现在它不是独特的。你不能把DISTINCT放在那里,因为它应该已经是它了吗? –