使用sql查询从两个表中选择数据

时间:2014-01-16 11:09:44

标签: sql database sql-server-2008

我有2张桌子

课程(ID日期描述持续时间Meatier_ID Promotion_ID)。

第二张表

少尉(E_Id Meatier_Id Promotion_Id)

infarct我有一个基于该id的id我必须从Ensign中选择数据,其中id = Eng_Id然后我需要从课程中选择数据,其中表Course中的Meatier_Id和Promotion_Id等于Meatier_Id和Promotion_Id到先前查询中选择的数据

我可以使用一个S q l查询感谢

溴 萨拉

3 个答案:

答案 0 :(得分:1)

你的问题有点模糊,但我试了一下

--These two variables take the place for your 'Earlier Query' values
DECLARE @Meatier_ID INT = 100,
        @Promotion_Id INT = 15

--The query
SELECT *
FROM Course AS C
INNER JOIN Ensign AS E ON C.ID = E.E_Id
WHERE C.Meatier_ID = @Meatier_ID
AND C.Promotion_Id = @Promotion_Id

答案 1 :(得分:0)

在Meater_ID和Promotion_ID上将两个表连接在一起。然后选择那些Eng_Id是您正在使用的ID的行。

SELECT *
FROM Course c
INNER JOIN Ensign e
   ON e.Meatier_ID = c.Meatier_ID
  AND e.Promotion_ID = c.Promotion_ID
WHERE e.Eng_Id = <id value here>

编辑:

以上内容适用于SQL Server。对于德比,请尝试:

SELECT *
FROM Course
INNER JOIN Ensign 
  ON Ensign.Meatier_ID = Course.Meatier_ID
 AND Ensign.Promotion_ID = Course.Promotion_ID
WHERE Ensign.Eng_Id = <id value here>

答案 2 :(得分:0)

选择e.E_Id,e.Meatier_Id,e.Promotion_Id,c.ID,c.Date,c.Description,c.Duration从Ensign作为内部联接课程作为c,其中e.Meatier_Id = c.Meatier_Id和e .Promotion_Id = c.Promotion_Id和e.E_Id=@Eng_Id