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
你希望你的查询返回什么?谢谢你的回答,但是这个查询仍然会产生笛卡尔,还有其他想法吗?嗯。。那就告诉我们你到底期望得到什么结果。。。据我所知,这些查询不应该产生某种产品。。。