2009-04-08 18 views
0

Ich habe ein Problem beim Abfragen mehrerer Tabellen in MySQL und bin derzeit am Ende meines Wissens.MySQL Multitable Query Problem

Ich habe einzigartige ID s in jeder Tabelle, und verwende eine INNER JOIN, um sie zu kombinieren; Ich bin ganz neu zu SQL und dies kann die falsche Methode sein, damit Posting mich hier:

Abfrage:

SELECT res.UserID, res.QuizID, res.QuizResult, u.UserID, u.UserLogin, q.QuizID, q.QuizName, q.QuizFile 
FROM results res 
INNER JOIN users u ON (res.UserID = u.UserID) 
INNER JOIN quiz q ON (res.QuizID = q.QuizID) 

Tabelle users enthält

UserID 
UserLogin 
UserPass 

Tabelle quiz enthält

QuizID 
QuizName 
QuizFile 

Tabelle results enthält

Kann mir bitte jemand sagen, warum ich ein kartesisches Produkt bekomme und wie ich es beheben sollte?

+0

Was _will_, um ernsthaft Sie Ihre Anfrage zurück? –

Antwort

2

Try this:

 
SELECT res.UserID, res.QuizID, res.QuizResult, u.UserID, u.UserLogin, q.QuizID, q.QuizName, q.QuizFile FROM results as res INNER JOIN users as u ON res.UserID = u.UserID INNER JOIN quiz as q ON res.QuizID = q.QuizID 

Eine andere Art und Weise so etwas wie ein INNER JOIN zu erkennen, ist dies: +

 
SELECT res.UserID, res.QuizID, res.QuizResult, u.UserID, u.UserLogin, q.QuizID, q.QuizName, q.QuizFile 
FROM results as res,users as u ,quiz as q 
WHERE res.UserID = u.UserID 
AND res.QuizID = q.QuizID 
+0

Danke für die Antwort, aber diese Abfrage produziert immer noch kartesisch, andere Ideen bitte? – Speedy

+0

hm .. dann sag uns einfach was du als Ergebnis genau erwartest ... Soweit ich das beurteilen kann, sollten diese Abfragen kein certesisches Produkt ergeben ... – SvenFinke