2013-07-24 61 views
3

我有兩個Select查詢獲得兩個具有相同列名稱的表的結果。我需要結合來自SQL select查詢的兩個結果

SELECT 
    labels.langjrd, 
    labels.id, 
    labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'FRE%' 
; 

SELECT 
    labels.langjrd, 
    labels.id, 
    labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'ENG%' 
; 

當我跑我希望把所有的結果到一個表的查詢。我讀了關於聯合查詢,但當我嘗試它時,它不起作用。我不想覆蓋所有重複的數據,我只想將第二個選擇結果添加到第一個選擇結果的底部。

回答

11

隨着UNION ALL你可以從兩個查詢這樣的結果相結合:

SELECT 
    labels.langjrd,labels.id,labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'FRE%' 
UNION ALL 
SELECT 
    labels.langjrd,labels.id,labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'ENG%'; 

您瞭解UNION它做了類似的事情,但它過濾掉重複的結果。所以它與UNION ALL類似,但不一樣。

但是由於您實際上是查詢同一個表中的完全相同的列,因此可以將這兩個條件放在where子句中,然後使用or將它們分開。這樣你將得到符合任一條件的所有記錄。

SELECT 
    labels.langjrd,labels.id,labels.lcphrase 
FROM 
    labels 
WHERE 
    labels.langjrd LIKE 'FRE%' OR 
    labels.langjrd LIKE 'ENG%';