2013-03-24 78 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