我的数据库中有 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
此处解释
获取Mike的所有好友
从 CON 中选择 * WHERE CON.AccID = 1 -- Mike 账户 ID
通过加入 Acc 表获取好友姓名
从 CON 中选择 ACC.Name 内部连接 ACC ON CON.FrID = ACC.ID 其中 CON.AccID = 1
通过加入 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/