2013-03-09 3 views
0

ОК, сперва я даю мне понять: я очень слабый с SQL и базами данных (я имею в виду, кроме нескольких простых операторов), но, оказывается, мне приходится решать с некоторыми SQLite БД, так что я думаю, мне нужна ваша помощь в этом запросе (который должен быть ультра-простой простой для тех, кто более знаком с SQL, чем у меня ...):Результаты таблицы объединений в реляционной базе данных

у меня есть 2 таблицы:

TOKENTYPES 

TOKENTYPE_ID TOKENTYPE_NAME 
1    nameA 
2    nameB 
3    nameC 

TOKENS 

TOKEN_ID TOKENTYPE_ID TOKEN_NAME 
1  2   tokA 
2  2   tokB 
3  3   tokC 

То, что я знаю:

  • По SELECT TOKENTYPE_ID,TOKEN_NAME FROM TOKENS, я могу получить все (TOKENTYPE_ID, TOKEN_NAME) пар из лексем
  • По SELECT TOKENTYPE_NAME FROM TOKENTYPES WHERE TOKENTYPE_ID=2, я могу получить Name для конкретных маркеров ID.

Теперь вот загвоздка:

Как может я бы-«объединить» эти 2 запроса и получить таблицу с TOKENTYPE_NAME, TOKEN_NAME?


EDIT:

Желаемый результат:

TOKEN_NAME TOKENTYPE_NAME 

tokA  nameB 
tokB  nameB 
tokC  nameC 
+0

вы можете показать вам желаемый результат? ':)' –

+0

@JW. Просто обновил свой первоначальный пост. –

ответ

1
SELECT tt.TOKENTYPE_NAME, t.TOKEN_NAME 
FROM TOKENS AS t 
JOIN TOKENTYPES AS tt 
    ON tt.TOKENTYPE_ID = t.TOKENTYPE_ID 
+0

Whoa! Это было быстро. (Мне потребовалось просто «преобразовать» примеры имен таблиц/полей в настоящие, но, похоже, он отлично работает.) Спасибо большое! (Думаю, мне придется немного поиграть с SQL ...) –

1
SELECT a.Token_Name, 
     b.TokenType_Name 
FROM Tokens a 
     INNER JOIN TokenTypes b 
      ON a.TokenType_ID = b.TokenType_ID 

Для дальнейшего получить больше знаний о присоединяется, любезно перейдите по ссылке ниже:

РЕЗУЛЬТАТ

╔════════════╦════════════════╗ 
║ TOKEN_NAME ║ TOKENTYPE_NAME ║ 
╠════════════╬════════════════╣ 
║ tokA  ║ nameB   ║ 
║ tokB  ║ nameB   ║ 
║ tokC  ║ nameC   ║ 
╚════════════╩════════════════╝ 
+0

Спасибо большое, приятель! (для ответа * и * ссылки вы указали мне тоже). (Чтобы быть справедливым, мне придется принять ответ @ JodyT). –