mysql - 使用 SQL 数据库中另一个表中的数据从两个表中获取数据

标签 mysql sql sql-server database

我的数据库中有 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 中选择 NAME 值,其中 AccID 在 FrID 中。

更具体地说,我想检查 Mike 的 friend 的 Lat Long。在 Con table 有 Mike 的两个 friend ,ID=2 和 ID=4,所以我想得到一张像这样的 table 。

ACC_NAME  LAT     LONG
Bob       20      25
Rocky     37      45 

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

最佳答案

您可以尝试使用 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的所有好友

    从 CON 中选择 * WHERE CON.AccID = 1 -- Mike 账户 ID

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

    从 CON 中选择 ACC.Name 内部连接 ​​ACC ON CON.FrID = ACC.ID 其中 CON.AccID = 1

  3. 通过加入 POS 表获取经纬度

    从 CON 中选择 ACC.Name、POS.LAT、POS.LONG 内部连接 ​​ACC ON CON.FrID = ACC.ID INNER JOIN POS ON POS.ID = ACC.ID 其中 CON.AccID = 1

关于mysql - 使用 SQL 数据库中另一个表中的数据从两个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37735538/

相关文章:

php - 如何自动按日期发送电子邮件

php - 我想显示图像以及从数据库中检索的文本

SQL - 添加/禁用基于 Select 语句中的 bool 条件的 Where 子句 (ASP.net SQLDataSource)

sql - 如何在 sql server 2008 中声明时在游标中使用 if 条件?

sql-server - 在 SQL 数据仓库中创建/选择外部表时处理嵌入的新行

php - HTML:将表格放入表单中

android - 如何每天执行MySQL查询

sql - 将数字列与 Oracle 中的字符串进行比较

sql - Oracle session 临时表中的数据何时会被删除?

php - 当我必须默认使用它时,如何通过 Yii2 迁移创建一个新数据库?