我的数据库中有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中。
更具体地说,我想查一下迈克朋友的Lat Long。在Con的桌子上有Mike的两个朋友,ID=2和ID=4,所以我想买一张这样的桌子。
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的所有朋友
SELECT * FROM CON WHERE CON.AccID = 1 -- Mike Account Id
通过加入Acc表获取好友名称
SELECT ACC.Name FROM CON INNER JOIN ACC ON CON.FrID = ACC.ID WHERE CON.AccID = 1
通过加入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