2009-07-17 22 views
13

Ho due tavoli. Il primo è utente; questo consiste di username e userid. Il secondo è la ricerca che consiste in userid e query.Come combinare due tabelle in una query?

Quando seleziono la tabella di ricerca, voglio che l'ID utente venga sostituito dal nome utente prelevando i dati dalla tabella utente. Questo ha un senso?

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

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

C'è un modo per farlo con una singola query?

risposta

63

Stai cercando un inner join. Questo avrebbe fatto:

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

ed è gol downvote strano ... –

+10

upvote per l'inclusione di un link. – seth

+0

Buona risposta. –

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;