2016-06-09 176 views
1

我的数据库中有3个表。让我们假设他们被命名为ACC,POS,CON。使用SQL数据库中另一个表中的数据从两个表中获取数据

在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个表中的数据。现在我想选择来自NAME的POS和NAME值中的所有LAT和LONG值,其中的FIDID为AccID。

更具体地说,我想检查迈克的朋友的Lat Long。在Con桌上有两个Mike的朋友,ID = 2和ID = 4,所以我想得到一个表。

ACC_NAME LAT  LONG 
Bob  20  25 
Rocky  37  45 

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

+4

这是使用两个'INNER JOIN'的来完成注册。你试过什么了? – JRLambert

+0

我是db上的新手。我只是试图通过使用IN运算符来获取数据,但这还不够。 – ReadyFreddy

回答

2

您可以尝试使用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. 获取迈克的所有朋友们

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

  2. 得到朋友名称与加表加入

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

  3. 获取纬度昂龙用POS表

    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

+0

解决了我的问题。非常感谢你!! – ReadyFreddy

相关问题