2013-10-01 124 views
0

目前我正在使用以下查詢來顯示以下結果。Sql查詢合併兩個表的結果

SELECT * FROM RouteToGrowthRecord, GradeMaster,MileStoneMaster 
WHERE MemberID = 'ALV01L11034A06' AND 
RouteToGrowthRecord.GradeID=GradeMaster.GradeID AND 
RouteToGrowthRecord.MileStoneID=MileStoneMaster.MileStoneID 
ORDER BY CheckupDate DESC 

and the output of quiry is:

現在我有一個名爲RouteToGrowthRecord_st另一個表具有相同的 列,RouteToGrowthRecord一些附加字段。

我需要顯示出現在這兩個表中的結果。即。如果RouteToGrowthRecord_st有3個記錄,並且給定的menberID,則輸出必須包含3個記錄以及上述查詢結果(總共高於9 + 3 = 12條記錄的fr)。

+1

使用['JOIN'(http://dev.mysql.com/doc/refman/5.0/en/join.html) – diEcho

+1

你可以使用UNION – cjava

+0

@diEcho:不是JOIN,UNION。仔細閱讀這個問題。 – ysth

回答

0

您可以使用此聯盟合併的結果來自兩個查詢得到上面寫的查詢。爲未映射的附加字段使用默認值。

0
SELECT * FROM RouteToGrowthRecord a inner join GradeMaster b inner 
    join MileStoneMaster c inner join RouteToGrowthRecord_st d on 
    a.GradeID=b.GradeID AND a.MileStoneID=c.MileStoneID and 
    d.GradeID=b.GradeID AND d.MileStoneID=c.MileStoneID 
    WHERE a.MemberID = 'ALV01L11034A06' 
    ORDER BY CheckupDate DESC 
+0

不工作..... – karz

+0

你得到什麼錯誤? –

+0

關鍵字'WHERE'附近的語法不正確。 – karz

0

您可以按以下方式

SELECT * FROM RouteToGrowthRecord 
INNER JOIN GradeMaster ON RouteToGrowthRecord.GradeID=GradeMaster.GradeID 
INNER JOIN MileStoneMaster ON RouteToGrowthRecord.MileStoneID=MileStoneMaster.MileStoneID 
LEFT JOIN RouteToGrowthRecord_st ON RouteToGrowthRecord_st.memberID=RouteToGrowthRecord.memberID 
WHERE 
RouteToGrowthRecord.MemberID = 'ALV01L11034A06' 
order by CheckupDate DESC 
+0

其jot組合....只顯示從一張桌子 – karz

0

這就是我的回答

SELECT CheckUpDate,AgeInMonths,PresentWeight,Height,Diagnosis,growthstatus,GradeName,MilestoneName,MemberID 
FROM RouteToGrowthRecord, GradeMaster,MileStoneMaster WHERE 
MemberID = 'ALV01L56107A11 ' and 
    RouteToGrowthRecord.GradeID=GradeMaster.GradeID and 
    RouteToGrowthRecord.MileStoneID=MileStoneMaster.MileStoneID 
    union 
    SELECT CheckUpDate,AgeInMonths,PresentWeight,Height,Diagnosis,growthstatus,GradeName,MilestoneName,MemberID 
    FROM RouteToGrowthRecord_st, GradeMaster,MileStoneMaster WHERE 
MemberID = 'ALV01L56107A11 ' and 
    RouteToGrowthRecord_st.GradeID=GradeMaster.GradeID and 
    RouteToGrowthRecord_st.MileStoneID=MileStoneMaster.MileStoneID 
    order by CheckupDate DESC