#mysql
#mysql
Вопрос:
Пользователи
user_types
1 = администратор 2 = дистрибьютор 3 = розничный торговец
user_id | user_name| user_type| user_under|
---------------------------------------------------------------------------
1 | user1 | 1 | 0
2 | user2 | 3 | 2
3 | user3 | 2 | 0
4 | user4 | 3 | 2
5 | user5 | 3 | 2
пополнение
rech_id | user_id| amount|
---------------------------------------------------------------------------
1 | 2 | 249
2 | 4 | 495
3 | 5 | 175
желаемый результат
rech_id | user_id| user_under|
---------------------------------------------------------------------------
1 | 2 | user3
2 | 4 | user3
3 | 5 | user3
я хочу перечислить все имена пользователей-распространителей, присоединившись к таблице пополнения
Комментарии:
1. Что вы пробовали? покажите нам свой код
2. Ваш вопрос неясен, и ваши усилия также
Ответ №1:
Как вы можете видеть, в таблице вывода вам нужны только те user_id, которые присутствуют как в users, так и в recharge, поэтому примените внутреннее соединение. Далее,
- rech_id может быть извлечен из таблицы пополнения счета
- идентификатор пользователя может быть получен либо из таблицы пользователей, либо из таблицы пополнения.
- для user_type в wanted_result есть шаблон, т. е. Комбинация ключевого слова «user» с user_type таблицы users. поэтому используйте concat(«user»,user_type)
select re.rech_id,re.user_id,concat("user",us.user_type) as user_under
from users us inner join recharge re USING (user_id)
Комментарии:
1. Предполагая, что ваш запрос выполняет именно то, что было задано (я не могу попробовать), другим было бы неплохо, если бы вы добавили некоторые пояснения, чтобы понять, что происходит и почему это работает.
Ответ №2:
Для этого результата вам нужно использовать join. Я не понимаю, о чем вы спрашиваете, но вам нужно использовать такой код:
select rech_id,user_id,user_under from users INNER JOIN recharge ON users.user_id=recharge.user_id;
Ответ №3:
Попробуйте приложить усилия, чтобы решить вашу проблему, не просто спрашивайте здесь. в любом случае я думаю, что это может решить вашу проблему
SELECT * FROM users AS u INNER JOIN recharge AS r on r.user_id = u.user_id
GROUP BY u.user_name;
Комментарии:
1.
SELECT * ... GROUP BY u.user_name
является ли 99% случаев недействительным SQL .. Это не то, как вы обычно должны использовать GROUP BY в SQL, если в столбце не может использоваться функционально зависимыйu.user_name