#mysql
Вопрос:
SELECT a.telegram_name, a.full_name, a.role_id, a.user_id
from tbl_telegram_user a
LEFT JOIN (
select a.owner_id, a.owner_name from tbl_agenda as a
join (
select a.type, a.message, a.status from tbl_message as a
join tbl_status as b
join (select * from tbl_agenda as a join tbl_message as b
on a.type = b.type
where a.type="/mom" and ( current_date BETWEEN from_time and to_time ) is not null)
on a.status = b.status
where b.status_type = 'workLocation' or b.status_type = 'off') as b
on a.type = b.type
where DATE(a.from_time) = DATE('2021-08-10 21:04:02')) as b
on a.telegram_name = b.owner_name
where b.owner_name is null AND a.user_id <> 0
Ответ №1:
я думаю, что в строке 9 вы забыли псевдоним :
SELECT a.telegram_name, a.full_name, a.role_id, a.user_id from tbl_telegram_user a LEFT JOIN ( select a.owner_id, a.owner_name from tbl_agenda as a join ( select a.type, a.message, a.status from tbl_message as a join tbl_status as b join (select * from tbl_agenda as a join tbl_message as b on a.type = b.type where a.type="/mom" and ( current_date BETWEEN from_time and to_time ) is not null) as "your alias" on a.status = b.status where b.status_type = 'workLocation' or b.status_type = 'off') as b on a.type = b.type where DATE(a.from_time) = DATE('2021-08-10 21:04:02')) as b on a.telegram_name = b.owner_name where b.owner_name is null AND a.user_id <> 0
Комментарии:
1. Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на наличие правильного синтаксиса для использования рядом с»вашим псевдонимом» в a.status = b.status, где b.status_type = ‘Рабочее местоположение’ или b.st » в строке 1 это ошибка, которую я получаю, когда выполняю вашу команду
2. теперь я хочу, чтобы между фронтимом и временем он не возвращал никакого результата, может ли кто-нибудь мне помочь
3. я думаю, что я только говорю вам, где вы забыли свой псевдоним, поэтому я пишу «ваш псевдоним», вы должны ввести свой собственный псевдоним, как вам нравится
4. я думаю, что удалите эту ДАТУ строки(‘2021-08-10 21:04:02’)) и используйте это «2021-08-10», просто попробуйте, может быть, он запустится
5. Я попробовал, и он показывает красный крестик =) наверное, нет
Ответ №2:
Похоже, псевдоним отсутствовал в подзапросе. Попробуйте выполнить следующий запрос.
SELECT a.telegram_name, a.full_name, a.role_id, a.user_id
from tbl_telegram_user a
LEFT JOIN (
select a.owner_id, a.owner_name from tbl_agenda as a
join (
select a.type, a.message, a.status from tbl_message as a
join tbl_status as b
join (select * from tbl_agenda as a join tbl_message as b
on a.type = b.type
where a.type="/mom" and ( current_date BETWEEN from_time and to_time ) is not null) as a
on a.status = b.status
where b.status_type = 'workLocation' or b.status_type = 'off') as b
on a.type = b.type
where DATE(a.from_time) = DATE('2021-08-10 21:04:02')) as b
on a.telegram_name = b.owner_name
where b.owner_name is null AND a.user_id <> 0
Комментарии:
1. Код ошибки: 1060. Дубликат имени столбца «тип»
2. теперь я хочу, чтобы между фронтимом и временем он не возвращал никакого результата, может ли кто-нибудь мне помочь