2013-03-24 74 views
0

我想这两个SELECT查询给一个结果,然后我想date_timemysql的2选择一个查询

SELECT 1来订购吧:

"SELECT * FROM `table` WHERE `f_id` = '$uid' AND `t_id` = '$pid'" 

选择2:

"SELECT * FROM `table` WHERE `f_id` = '$pid' AND `t_id` = '$uid'" 

我试图把它放在一个WHERE子句中,但它是不可能的,我也试图把它们放在子查询中,但这使得SELECT 2加入正确的SELECT 1:/我想这两个查询的一个输出数组,由date_time。 这怎么可能?

+0

它一般不推荐使用SELECT *在查询中,除非你真的需要所有返回的列。通常情况下,您最好能够确定要在结果中使用的特定列,以减少比您真正需要的回报率。 – Jason 2013-03-24 20:39:46

+0

我回滚了修改问题标题的编辑。没有必要这样做。 – BellevueBob 2013-03-24 21:15:36

回答

5
SELECT * FROM `table` WHERE `f_id` = '$uid' AND `t_id` = '$pid' 
UNION ALL 
SELECT * FROM `table` WHERE `f_id` = '$pid' AND `t_id` = '$uid' 

编辑:

呃......不好意思,我没看出来是同一个表。

SELECT * FROM table 
    WHERE (`f_id` = '$uid' AND `t_id` = '$pid') OR (`f_id` = '$pid' AND `t_id` = '$uid') 
    ORDER BY date_time 
+0

感谢兄弟的工作:D – gereb95 2013-03-24 20:45:24

+0

其他答案实际上是相同的:-) – Voitcus 2013-03-24 20:47:24

+0

我试过where条款或但没有为我工作 但工会都做这项工作:D – gereb95 2013-03-24 21:02:23

3

什么:

SELECT 
    * 
FROM 
    `table` 
WHERE 
    (`f_id` = '$uid' AND `t_id` = '$pid') OR 
    (`f_id` = '$pid' AND `t_id` = '$uid') 
ORDER BY 
    `date_time` DESC 
0

试试这个

SELECT * FROM 

     (select * FROM `table` WHERE `f_id` = '$uid' AND `t_id` = '$pid' 
     union all 
     SELECT * FROM `table` WHERE `f_id` = '$pid' AND `t_id` = '$uid')t 

    ORDER BY date_time 
+0

到底是什么? – Brobina 2015-03-31 15:58:34