Нужна помощь, чтобы объединить 2 запроса на выборку из 1 таблицы с 2 различными условиями - PullRequest
0 голосов
/ 06 апреля 2020

У меня проблемы с некоторыми простыми запросами SELECT:

SELECT QuestResource.limit_level, StringResource_FR.value FROM QuestResource, StringResource_FR WHERE StringResource_FR.code=QuestResource.text_id_quest ORDER BY limit_level, id

SELECT StringResource_FR.value FROM NPCResource, StringResource_FR WHERE StringResource_FR.code=NPCResource.text_id

SELECT StringResource_FR.value FROM NPCResource, StringResource_FR WHERE StringResource_FR.code=NPCResource.name_text_id

Проблема в том, что мне нужны строки (StringResource.value), связанные с некоторыми идентификаторами (QuestResource.text_id_quest, NPCResource.text_id, NPCResource .name_text_id) и я не могу заставить запросы работать в одном простом запросе и в одной таблице.

Так что я думаю, что это тривиальный запрос, и sql. sh мне не помогло Я прошу здесь =)

Спасибо за помощь.

Нужна помощь для базового c запроса и нужны советы для эффективного изучения SQL язык

1 Ответ

0 голосов
/ 06 апреля 2020

Во-первых, отбросьте любой учебный ресурс, который вы используете, который предлагает объединить таблицы, используя ,. Синтаксис JOIN скоро приближается к 30-летию ... (ANSI-92)

(Поиск в Интернете по SQL JOIN TUTORIAL и есть много хороших ресурсов для использования. )

Затем используйте псевдонимы, чтобы присоединиться к одной и той же таблице несколько раз ...

SELECT
  NPCResource.*,
  StringText.value   AS text_string,
  StringName.value   AS name_string
FROM
  NPCResource
INNER JOIN
  StringResource_FR     StringText
    ON StringText.code = NPCResource.text_id
INNER JOIN
  StringResource_FR     StringName
    ON StringName.code = NPCResource.name_text_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...