【问题标题】:Selecting data from two tables with sql query使用sql查询从两个表中选择数据
【发布时间】:2014-01-16 11:09:43
【问题描述】:

我有两张桌子

课程(ID 日期 描述 Duration Meatier_ID Promotion_ID)。

第二张桌子

Ensign(E_Id Meatier_Id Promotion_Id)

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

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

溴 萨拉

【问题讨论】:

    标签: sql database sql-server-2008


    【解决方案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
    

    【讨论】:

    • 实际上匹配参数是我在函数中收到的变量。因此,基于此,我必须从 Eng_Id=variable id 的 Engseine 中选择数据,然后根据该记录集,我必须从 Cours c 中选择数据,其中 c.matiere.id 和 c.promotion.id 必须 b 等于在中选择的 id较早的记录集...如果那很清楚我很抱歉
    【解决方案2】:

    在 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>
    

    【讨论】:

    • 我正在尝试加入表格,但它不允许我在加入后自动完成
    • 事实上,在 Inner Join 之后,它不会让我完成实体的名称,因此我猜它不工作你有什么建议
    • 您在什么环境下工作? SqlServerManagementStudio? 'SELECT * FROM Course' 和 'SELECT * FROM Ensign' 你能毫无问题地做吗?
    • 是的,我实际上可以使用 derby 内置数据库,我可以很好地分别从这两个表中进行选择
    • 我无法测试我的命令,因为这些是用 hibernate 编写的命令,所以我必须依靠自动完成来验证该命令是否有效
    【解决方案3】:

    选择 e.E_Id, e.Meatier_Id, e.Promotion_Id, c.ID, c.Date, c.Description, c.Duration from Ensign as e inner join course as c where e.Meatier_Id=c.Meatier_Id and e .Promotion_Id=c.Promotion_Id 和 e.E_Id=@Eng_Id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      • 2020-06-24
      相关资源
      最近更新 更多