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

我在各表中是唯一IDs,并使用INNER 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

任何人能告诉我为什么我得到一个笛卡尔积,我应该如何去修复它?

有帮助吗?

解决方案

尝试这种情况:

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

要实现类似的INNER JOIN一种不同的方式是这样的:+

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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top