2013-10-17 70 views
-2

我想執行兩個具有相同列數的查詢。這裏是我的查詢,請幫我得到的結果:用於選擇具有相同列的兩個不同表的查詢

SELECT A.* 
FROM (SELECT * 
     FROM yh5lw_onlinecourse 
     WHERE state = 1 
     ORDER BY id DESC) A 
union 
SELECT A1.* 
FROM (SELECT * 
     FROM yh5lw_practicetest 
     WHERE state = 1 
     ORDER BY id DESC) A1 
+3

有什麼問題? – Mureinik

+0

您應該注意這些列的數據類型,並避免在工會中使用*。 –

+1

你確定他們有相同的列?我不信。可能這兩個表都是'SHARE'列,但有一些額外的,這可能是什麼讓你一個錯誤,因爲'SELECT *'將獲得所有列和列表的列表不同,請嘗試通過命名所有列他們你需要。 – DrCopyPaste

回答

1

我想你想要這樣的:

SELECT * FROM 
    (SELECT A.id as id, A.field1 as outputname1, A.field2 as outputname2, ... and so on 
    FROM yh5lw_onlinecourse A 
    WHERE state = 1 
    UNION 
    SELECT A1.* 
    FROM yh5lw_practicetest A1 
    WHERE state = 1) myUnion 
order by myUnion.id DESC 

關注:

如果使用UNION而不是UNION ALL你放棄所有重複的值 -

第一個查詢必須有別名,因爲這樣您可以將您的名稱命名爲yuor輸出表。第二個查詢(在UNION之後)可以使用*通配符(但字段數必須相同)

相關問題