Sql 如何在一个查询中组合两个表?

Sql 如何在一个查询中组合两个表?,sql,mysql,join,Sql,Mysql,Join,我有两张桌子。首先是用户;这包括用户名和用户ID。第二种是搜索,它由用户ID和查询组成 当我选择搜索表时,我希望通过从用户表中获取数据,将用户ID替换为用户名。这有意义吗 +-------+----------+ |userid | username | +-------+----------+ | 1 | foo1 | +-------+----------+ | 2 | foo2 | +-------+----------+ | 3 | foo3

我有两张桌子。首先是用户;这包括用户名和用户ID。第二种是搜索,它由用户ID和查询组成

当我选择搜索表时,我希望通过从用户表中获取数据,将用户ID替换为用户名。这有意义吗

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

+-------+----------+
|userid |   query  |
+-------+----------+
|    1  |   blah1  |
+-------+----------+
|    2  |   blah2  |
+-------+----------+
|    3  |   blah2  |
+-------+----------+
|    4  |   blah2  |
+-------+----------+
有没有一种方法可以通过一个查询来实现这一点?

您正在寻找一个。这可以做到:

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

为什么链接一些容易搜索的东西会说服你向上投票?你在这里用我的+1来回答战术性的向下投票问题;)但不要告诉任何人,因为我不知道这是否公平……)
SELECT u.`username`, s.`query` 
    FROM `search` s
        INNER JOIN `users` u ON s.`userid` = u.`userid`
SELECT username, query FROM Users, Queries WHERE Users.userid=Queries.userid;