MySQL多任务查询问题

MySQL多任务查询问题,sql,mysql,cartesian-product,Sql,Mysql,Cartesian Product,在MySQL中查询多个表时遇到问题,目前我束手无策 我在每个表中都有唯一的IDs,并使用内部连接来组合它们;我对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.User

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

我在每个表中都有唯一的
ID
s,并使用
内部连接来组合它们;我对
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)
用户
包含

UserID
UserLogin
UserPass
测验
包含

QuizID
QuizName
QuizFile
UserID
QuizID
QuizResults
结果
包含

QuizID
QuizName
QuizFile
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 从结果中选择res.UserID、res.QuizID、res.QuizResult、u.UserID、u.UserLogin、q.QuizID、q.QuizName、q.QuizFile作为res-internal-JOIN-users-as-u-ON-res.UserID=u.UserID-internal-JOIN-quick-as-ON-ON-res.QuizID=q.QuizID=q 实现类似内部联接的另一种方式是:+

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 选择res.UserID、res.QuizID、res.QuizResult、u.UserID、u.UserLogin、q.QuizID、q.QuizName、q.QuizFile 结果为res,用户为u,测验为q 其中res.UserID=u.UserID 和res.QuizID=q.QuizID
你希望你的查询返回什么?谢谢你的回答,但是这个查询仍然会产生笛卡尔,还有其他想法吗?嗯。。那就告诉我们你到底期望得到什么结果。。。据我所知,这些查询不应该产生某种产品。。。