2009-07-17 30 views
13

Ich habe zwei Tabellen. Zuerst ist Benutzer; Dies besteht aus Benutzername und Benutzer-ID. Die zweite ist die Suche, die aus Benutzer-ID und Abfrage besteht.Wie zwei Tabellen in einer Abfrage kombinieren?

Wenn ich die Suchtabelle auswähle, möchte ich die Benutzer-ID durch den Benutzernamen ersetzen, indem ich die Daten aus der Benutzertabelle nehme. Macht das Sinn?

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

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

Gibt es eine Möglichkeit, dies mit einer einzigen Abfrage zu tun?

Antwort

63

Sie suchen nach einem inner join. Dies würde es tun:

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

Nun, das ist eine seltsame downvote war ... –

+10

upvote für einen Link enthält. – seth

+0

Gute Antwort. –

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; 
Verwandte Themen