我在查询MySQL
中的多个表时遇到问题,目前我的智慧结束了。
我在每个表格中都有唯一的ID
,我使用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
任何人都可以告诉我为什么我会得到笛卡尔产品,以及我应该如何修复它?
答案 0 :(得分: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 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