Запрос из двух таблиц с одним утверждением?

0

У меня есть 2 таблицы

User
-userid
-group
//other unrelated columns

Logs
-userid
-ip

Что я хочу сделать, это использовать IP-запрос в таблице журналов для всех пользователей, а затем получить группы всех пользователей. Возможно ли это с помощью одного запроса? Если нет, все равно, чтобы ускорить его, кроме запроса каждой строки пользователя с идентификатором пользователя?

  • 0
    Пожалуйста, используйте как минимум те операторы CREATE таблицы, чтобы увидеть структуру таблицы.
  • 2
    Без обид, но это самый простой из возможных вопросов SQL. Вы не можете изучить такие основы на стеке потока. Попробуйте онлайн-курс, например, sqlcourse.com/index.html
Теги:

5 ответов

3
Лучший ответ

Что-то вроде этого?

SELECT ip, userid, group
FROM Logs INNER JOIN User ON Logs.userid = User.userid
WHERE ip = '1.2.3.4'
  • 0
    Просто нужен User.userid, и он работает. Спасибо
3

Несомненно, это простое соединение?

select logs.userid,logs.ip,user.group
from logs
left join user on logs.userid=user.userid
2
select distinct group 
from user u
join logs l on u.userid=l.userid
where l.ip='yourIP'
1

Вы должны иметь возможность сделать это с помощью соединения (http://dev.mysql.com/doc/refman/5.0/en/join.html)

select User.group
from Logs
   inner join User on Logs.userid = User.userid
where Logs.ip = 'IP';
1

По крайней мере, назад отметьте некоторые имена полей, которые являются ключевыми словами (группой), или могут быть специальными (пользовательскими)

SELECT L.`group`
FROM Logs L
INNER JOIN `User` U ON U.userid = L.userid
WHERE L.ip = '1.2.3.4'
GROUP BY L.`group`

Ещё вопросы

Сообщество Overcoder
Наверх
Меню