2009-07-17 23 views
13

我有两张桌子。首先是用户;这包括用户名和用户ID。第二个是由用户标识和查询组成的搜索。如何在查询中组合两个表?

当我选择搜索表时,我希望通过从用户表获取数据,以用户名替换用户ID。这是有道理的吗?

+-------+----------+ 
|userid | username | 
+-------+----------+ 
| 1 | foo1 | 
+-------+----------+ 
| 2 | foo2 | 
+-------+----------+ 
| 3 | foo3 | 
+-------+----------+ 
| 4 | foo4 | 
+-------+----------+ 

+-------+----------+ 
|userid | query | 
+-------+----------+ 
| 1 | blah1 | 
+-------+----------+ 
| 2 | blah2 | 
+-------+----------+ 
| 3 | blah2 | 
+-------+----------+ 
| 4 | blah2 | 
+-------+----------+ 

有没有办法做到这一点与单个查询?

回答

63

您正在查找inner join。这将做到这一点:

SELECT s.query, u.username 
FROM search s 
INNER JOIN users u 
ON s.userid = u.userid 
+13

嗯,这是一个奇怪的downvote ... – 2009-07-17 06:10:11

2
SELECT u.`username`, s.`query` 
    FROM `search` s 
     INNER JOIN `users` u ON s.`userid` = u.`userid` 
3
SELECT username, query FROM Users, Queries WHERE Users.userid=Queries.userid;