2016-06-09 93 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

相關問題