2011-04-01 29 views
0

我有2个表从两个表中查询一条语句?

User 
-userid 
-group 
//other unrelated columns 

Logs 
-userid 
-ip

我要的是使用IP查询日志表的所有用户ID做,然后让所有的用户ID的组。这可能与一个单一的查询?如果不是,那么加速它,而不是用userid查询每个用户行?

+0

请给出至少使用那些表的CREATE语句,来查看表结构。 – Deele 2011-04-01 09:15:34

+2

没有违法意图,但这是可能的最基本的SQL问题。你不能在stackoverflow上学习这些基础知识。尝试在线课程,例如http://www.sqlcourse.com/index.html – onedaywhen 2011-04-01 09:34:17

回答

3

像这样?

SELECT ip, userid, group 
FROM Logs INNER JOIN User ON Logs.userid = User.userid 
WHERE ip = '1.2.3.4' 
+0

只需要User.userid而不是它的工作原理。谢谢 – Will 2011-04-01 09:37:02

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

至少背打勾一些是关键字(组)或可能是特殊的字段名称(用户)

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`