题
我在MySQL
查询多个表的问题,在我束手无策我目前。
我在各表中是唯一ID
s,并使用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
不隶属于 StackOverflow