2009-04-08 6 views
0

J'ai un problème lors de l'interrogation de plusieurs tables dans MySQL et suis actuellement à ma fin.Problème de requête multilingue MySQL

J'ai ID s dans chaque table, et j'utilise un INNER JOIN pour les combiner; Je suis tout à fait nouveau pour SQL et cela peut être la mauvaise méthode, me donc de poster ici:

Requête:

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) 

Table users contient

UserID 
UserLogin 
UserPass 

Table quiz contient

QuizID 
QuizName 
QuizFile 

Tableau results contient

UserID 
QuizID 
QuizResults 

Quelqu'un peut-il s'il vous plaît me dire pourquoi je reçois un produit cartésien, et comment je devrais prendre pour le corriger?

+0

Que _want_-vous votre requête pour retourner? –

Répondre

2

Essayez ceci:

 
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 

Une autre façon de réaliser quelque chose comme une INNER JOIN est la suivante: +

 
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

Merci pour la réponse, mais cette requête produit encore cartésien, d'autres idées s'il vous plaît? – Speedy

+0

hm .. alors dites-nous juste ce que vous attendez exactement comme résultat ... Autant que je sache, ces querys ne devraient pas produire un produit répondant ... – SvenFinke