2017-08-28 96 views
-1

實際上我有兩個表,即表1和表2。我需要顯示來自兩個表的數據。如果我使用在MySQL中一次又一次顯示錶數據?

SELECT * FROM table 1 UNION SELECT * FROM table 2 

現在我隨機從兩個表

獲取數據,但我需要後顯示錶2的數據首先顯示table1的數據

+0

請編輯澄清到你的問題,不評論。但是,在你的評論中你不想說什麼 - 請寫出更長的句子。請閱讀並在[mcve]上採取行動。 PS您必須爲該表添加一列到每個union all,按第二個select中的該列排序(適用於聯合),然後選擇原始列。此外,這肯定是一個常見問題,請谷歌許多清晰,簡潔,具體的聲明你的問題和閱讀許多命中之前張貼。 – philipxy

+0

[SQL Server UNION - 什麼是默認的ORDER BY行爲](https://stackoverflow.com/questions/421049/sql-server-union-what-is-the-default-order-by-behaviour)可能的重複 – philipxy

回答

1

在實踐中,這將做你想做的(假設表具有相同的列):

SELECT * FROM table1 
UNION ALL 
SELECT * FROM table2; 

它實際上是更安全的使用顯式order by

SELECT . . . 
FROM (SELECT t1.*, 1 as which FROM table1 t1 
     UNION ALL 
     SELECT t2.*, 2 as which FROM table2 t2 
    ) t 
ORDER BY which; 

SQL表格代表無序集合。沒有ANSI要求UNION ALL在第二個子查詢之前從第一個子查詢返回值。在實踐中,這在MySQL中起作用。

1

一種方法可能是在兩個查詢中添加一列,這表明它來自何處。

SELECT 
* 
FROM 
(
    SELECT *,'T1' AS source FROM table1 
    UNION 
    SELECT *,'T2' FROM table2 
) AS t 
ORDER BY t.source ASC; 

See Demo

+0

其工作,但對我的要求不起作用。 –

+0

選擇job_id,company_name,job_description,job_location,job_title,maxAnnual_ctc,max_exp_required,minAnnual_ctc,min_exp_required,mandatory_skill1,mandatory_skill2,mandatory_skill3,TQT,suggest_tqt1,suggest_tqt2,suggest_tqt3,作爲jobpost_url爲空,空作爲來源,來自jobs_posted的added_date –

+0

UNION選擇job_id,company_name,job_description,job_location,job_title,Null爲maxAnnual_ctc,Null爲max_exp_required,Null爲minAnnual_ctc,Null爲min_exp_required,mandatory_skill1,Null爲mandatory_skill2,Null爲mandatory_skill3,Null爲TQT,Null爲Null as suggest_tqt1,Null as suggest_tqt2,Null as suggest_tqt3,jobpost_url,source,creted_data_time as added_date FROM indee d_jobcrawl ORDER BY added_date desc LIMIT 10 –