2013-10-01 52 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