2014-09-20 68 views
1

我有2個脊髓癆與以下字段PHP的MySQL的加入兩個表不具有共同價值觀

Table1 ::

Id, Name, startDate, File, Current test 

數據集:

1 nm1-tbl1 25-10-2013 file1 yes 1 
1 nm2-tbl1 27-10-2013 file2 yes 1 

Table2 ::

Id, Name, startDate, File, Enddate 

數據

​​

我需要出去把儘可能

1 nm1-tbl2 24-10-2013 file1 
1 nm1-tbl1 25-10-2013 file1 
1 nm2-tbl3 26-10-2013 file2 
1 nm2-tbl1 27-10-2013 file2 

兩個表中都沒有共同的價值觀。但我需要梳理這兩個表按順序由ASC或DESC

select a.*, b.* 
from table1 as a, table2 as b 
where a.File <> '' AND b.File <> '' AND a.startDate <> '0000-00-00' 
    AND b.startDate <> '0000-00-00' order by a.startDate ASC, b.startDate ASC 

但它不按預期工作。它首先訂購table1,然後訂購table2。但我需要作爲2的組合。如何實現這一點。請幫幫我。

+1

看SQL 「聯盟」 – schlagi123 2014-09-20 11:17:59

回答

2
(
    select 
    Id, 
    Name, 
    startDate, 
    File 
    from 
    table1 
) 
union 
(
    select 
    Id, 
    Name, 
    startDate, 
    File 
    from 
    table2 
) 
order by 
    startDate DESC; 
0

我認爲你需要在這裏使用UNION:

(SELECT * FROM Table1) 
UNION 
(SELECT * FROM Table2) 
ORDER BY startDate DESC; 

UNION用於將結果從多個SELECT語句合併成一個結果集。 http://dev.mysql.com/doc/refman/5.0/en/union.html

+0

這是行不通的,因爲兩個表具有不同的列數。 – VMai 2014-09-20 11:24:39

0

使用union查詢得到這個結果

SELECT Id,Name,startDate,File 
FROM table1 
UNION 
SELECT Id,Name,startDate,File 
FROM table2 
ORDER BY startDate ASC 
相關問題