Всем привет, срочно нужна помощь с запросом, почему он возвращает

неправильное кол-во записей
SELECT tu.id,
tu.firstname,
tu.lastname,
tu.region,
IF(r.name IS NOT NULL, r.name, 'user') as role_name,
if(r.name IS NOT NULL, UPPER(LEFT(r.name, 1)), 'U') as role
FROM tbl_user tu
LEFT JOIN tbl_users_groups_permissions tugp ON tugp.user_id = tu.id
LEFT JOIN tbl_users_groups_relations tugr ON tugr.user_id = tu.id
LEFT JOIN roles r ON tugp.role_id = r.id
WHERE tu.id = ?
AND tugr.group_id = ?
AND tu.is_delete = '0'
AND tu.is_active= '1'

10 ответов

16 просмотров
Alex- Автор вопроса

1337,Roman,M,western,admin,A 1337,Roman,M,western,admin,A а это респонс запроса

Стикер

мне кажется что вы неправильно вытащили AND tugr.group_id = ? в секцию вхере, при том что tugr джоинится через лефт. вы по сути фильтруете по tugr.group_id а не обогащаете с помощью лефт, если в tugr нет записи для вашего юзера, вы получите в group_id нулл и не показываете её в результате. если в этом проблема, занесите условие в секцию лефт джоин через энд.

Alex- Автор вопроса

как это сделать?

Я тебе уж раз 10 наверно писал... Нельзя на поля из LEFT JOIN накладывать условия в WHERE. Это превращает LEFT в Inner join

Вместо этого уродства IF(r.name IS NOT NULL, r.name, 'user') выучи уже стандартную фунrцию COALESCE ...

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

Alex- Автор вопроса

Так а правильно, если вернуло две записи где в одной group_id явно не правильный

Если ты не объяснишь, что тебе нужно, тебе опять никто не сможет помочь...

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта