2009-07-17 30 views
13

Tengo dos tablas. Primero es usuario; esto consiste en username y userid. El segundo es la búsqueda que consiste en ID de usuario y consulta.¿Cómo combinar dos tablas en una consulta?

Cuando selecciono la tabla de búsqueda, deseo que el ID de usuario sea reemplazado por nombre de usuario tomando los datos de la tabla de usuario. ¿Esto tiene sentido?

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

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

¿Hay alguna manera de hacerlo con una sola consulta?

Respuesta

63

Está buscando inner join. Esto lo haría:

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

Bueno, eso fue un downvote raro ... –

+10

upvote para la inclusión de un enlace. – seth

+0

Buena respuesta. –

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; 
Cuestiones relacionadas