【问题标题】:Get data from two tables using by data from another table in SQL Database使用 SQL 数据库中另一个表中的数据从两个表中获取数据
【发布时间】:2016-06-09 20:27:41
【问题描述】:

我的数据库中有 3 个表。假设它们被命名为 ACC、POS、CON。

在 ACC 表我有 ID 和 NAME 列。 POS 表有 LAT 和 LONG 列,CON 表有 AccID 和 FrID 列。

举个例子。

                      ACC          /          POS         /     CON
                ID         NAME   / ID   LAT     LONG    / AccID     FrID
                1          Mike      1    10       15       1         2
                2          Bob       2    20       25       1         4             
                3          Jack      3    18       21       2         3            
                4          Rocky     4    37       45       2         1

这是我的 3 个表中的数据。现在我想从 POS 中选择所有 LAT 和 LONG 值,并从 NAME 中选择所有 LAT 和 LONG 值,其中 AccID 在 FrID 中。

更具体地说,我想查看 Mike 朋友的 Lat Long。在 Con 餐桌上有 Mike 的两个朋友,ID=2 和 ID=4,所以我想要一张这样的桌子。

ACC_NAME  LAT     LONG
Bob       20      25
Rocky     37      45 

你能给我一个关于这个问题的查询示例吗?谢谢。

【问题讨论】:

  • 这是使用两个INNER JOIN 完成的。到目前为止,您尝试过什么?
  • 我是 db 的新手。我只是尝试使用 IN 运算符获取数据,但还不够。

标签: mysql sql sql-server database


【解决方案1】:

您可以尝试使用INNER JOIN。这是完整的查询:-

SELECT ACC.Name, POS.LAT, POS.LONG FROM CON
INNER JOIN ACC ON CON.FrID = ACC.ID
INNER JOIN POS ON POS.ID = ACC.ID
WHERE CON.AccID = 1

在此说明

  1. 获取 Mike By 的所有朋友

    SELECT * FROM CON WHERE CON.AccID = 1 -- Mike Account Id

  2. 通过加入 Acc 表获取好友姓名

    SELECT ACC.Name FROM CON INNER JOIN ACC ON CON.FrID = ACC.ID WHERE CON.AccID = 1

  3. 通过与 POS 表连接获得 Lat ang Long

    SELECT ACC.Name, POS.LAT, POS.LONG FROM CON INNER JOIN ACC ON CON.FrID = ACC.ID INNER JOIN POS ON POS.ID = ACC.ID WHERE CON.AccID = 1

【讨论】:

  • 解决了我的问题。非常感谢!!
猜你喜欢
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多