2016-06-09 7 views
1

У меня есть 3 таблицы в моей базе данных. Предположим, что они называются ACC, POS, CON.Получить данные из двух таблиц, используя данные из другой таблицы в базе данных SQL

В таблице ACC у меня есть столбцы ИД и ИМЯ. В таблице 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 таблиц. Теперь я хочу выбрать все значения LAT и LONG из значений POS и NAME из NAME, где AccID в FrID.

Чтобы быть более конкретным, я хочу проверить Лат Лонга Майка. В таблице Con есть два друга Майка, ID = 2 и ID = 4, поэтому я хочу получить таблицу типа.

ACC_NAME LAT  LONG 
Bob  20  25 
Rocky  37  45 

Вы можете дать мне пример запроса для этой проблемы. Спасибо.

+4

Это достигается с помощью двух 'ВНУТРЕННИЙ 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. Получить Все друзья Mike По

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

  2. Получить Имя друга по регистрации с таблицей Acc

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

  3. Получить Lat анг Long по регистрации с 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

Смежные вопросы