MySQL объединяется с заявлениями по делу
У меня возникли проблемы с запросом. Я хочу объединить таблицы, если дело выполнено. Это запрос, с которым я работаю. Я новичок в этих заявлениях по делу, поэтому любая помощь очень ценится!
SELECT
conversation.c_id,
conversation.user_one,
conversation.user_two,
users.name,
users.lastName
FROM `conversation`
CASE
WHEN conversation.user_one = 1
THEN
INNER JOIN `users`
ON conversation.two = users.id
WHEN conversation.user_two = 1
THEN
INNER JOIN `users`
ON conversation.user_one = users.id
END CASE
WHERE `user_one` = 1 OR `user_two` = 1
1 ответ
Решение
Не вводите регистр всего внутреннего соединения, делайте регистр только в условии on в соединении. Это должно работать (если у меня нет опечаток):
SELECT
conversation.c_id,
conversation.user_one,
conversation.user_two,
users.name,
users.lastName
FROM `conversation`
INNER JOIN `users`
on
users.id =
CASE
WHEN conversation.user_one = 1
THEN conversation.two
WHEN conversation.user_two = 1
THEN conversation.user_one
END
WHERE `user_one` = 1 OR `user_two` = 1
Вы также можете добиться похожего эффекта, если присоединиться к каждому из этих условий, а затем использовать оператор case в вашем операторе select, чтобы определить, из какой из двух таблиц будут отображаться записи.