2012-02-25 2 views
0

я застрял с запросом SQL (для SQL Server). Я новичок в SQL, и я не добился большого прогресса. Я создал тестовый проект для тестирования тегов.SQL Server: мечение запрос

У меня есть 3 таблицы следующим образом:

Monster: 
Name  Description    EatsPeople 
Vampire Pale, afraid of light True 
Ghost See-through, annoying False 
Wraith Green-ish, ugly, dumb True 

TagLookup: 
Name ID 
Ghost 1 
Ghost 2 
Wraith 1 

Tags: 
ID Text      Value 
1  Green      green-skin 
2  Screams like a banshee banshee-call 

Я пытаюсь выбрать все монстр, которые имеют значение тега «зеленый шкуру».

ответ

2

Предполагая, что Monsters.Name, Tags.Value и Name-ID комбинации TagLookup являются уникальными:

SELECT m.Name, m.Description, m.EatsPeople 
    FROM dbo.Monster AS m 
    INNER JOIN dbo.TagLookup AS tl 
    ON m.Name = tl.Name 
    INNER JOIN dbo.Tags AS t 
    ON t.ID = tl.ID 
    AND t.Value = 'green-skin';