2013-10-01 6 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 записи вместе с приведенным выше результатом запроса (fr ex над его 9 + 3 = 12 записей).

+1

использование [ 'JOIN'] (http://dev.mysql.com/doc/refman/5.0/en/join.html) – diEcho

+1

вы можете использовать UNION – cjava

+0

@diEcho: not 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

не workin ..... – karz

+0

какая ошибка вы получаете? –

+0

Неверный синтаксис рядом с ключевым словом «ГДЕ». – 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 
Смежные вопросы