Соединение MySQL на основе первых 4 символов - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь присоединиться ко второй таблице, основанной на первых 4 символах поля из первой таблицы, но я продолжаю получать "Неизвестный столбец:

SELECT questions.id as id, question, answer, correct, SUBSTRING(question,1,4) as first4
FROM questions
LEFT JOIN answers ON answers.correct_answer = questions.first4
WHERE player_name = 'Alpha Squad'
ORDER BY id ASC

(я понимаю, что таблицы структурированы неэффективно, но, к сожалению, мне приходится работать с ними как есть)

Таблицы: https://pastebin.com/Gur5ufXa

MySQL: https://pastebin.com/FLgWtQmY

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 30 мая 2018
SELECT questions.id as id, question, answer, correct, SUBSTRING(question,1,4) as first4
FROM questions
LEFT JOIN answers ON answers.correct_answer = questions.correct
WHERE player_name = 'Alpha Squad'
ORDER BY id ASC

или этот следующий присоединяется специально к тем, у которых совпадают первые 4

SELECT questions.id as id, question, answer, correct, SUBSTRING(question,1,4) as first4
    FROM questions
    LEFT JOIN answers ON SUBSTRING(answers.correct_answer,1,4) = SUBSTRING(question,1,4)
    ORDER BY id ASC
0 голосов
/ 30 мая 2018
SELECT questions.id as id, question, answer, correct, SUBSTRING(question,1,4) as first4
FROM questions
LEFT JOIN answers ON answers.correct_answer = SUBSTRING(question,1,4) 
WHERE player_name = 'Alpha Squad'
ORDER BY id ASC

Проблема first4 не существует в момент, когда вы пытаетесь выполнить JOIN.Отметьте здесь, чтобы увидеть порядок обработки выбранного отчета.

Порядок выполнения SQL-запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...