0

我在查询多个表时遇到问题MySQL,目前我束手无策。

ID在每个表中都有唯一的 s,并且正在使用 anINNER JOIN来组合它们;我很陌生SQL,这可能是错误的方法,因此我在这里发布:

询问:

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)

users包含

UserID
UserLogin
UserPass

quiz包含

QuizID
QuizName
QuizFile

results包含

UserID
QuizID
QuizResults

谁能告诉我为什么我要得到笛卡尔积,以及我应该如何修复它?

4

1 回答 1

2

试试这个:

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加入测验为 q ON res.QuizID = q.QuizID

实现类似 INNER JOIN 的另一种方法是:+

选择 res.UserID、res.QuizID、res.QuizResult、u.UserID、u.UserLogin、q.QuizID、q.QuizName、q.QuizFile
FROM 结果为 res,users 为 u,quiz 为 q
其中 res.UserID = u.UserID
AND res.QuizID = q.QuizID
于 2009-04-08T10:53:53.333 回答