MySQL Multitable Consulta Problema
-
05-09-2019 - |
Pergunta
Eu tenho um problema consultando várias tabelas em MySQL
e atualmente estou no meu juízo final.
Eu tenho ID
s exclusivos em cada mesa, e estou usando um INNER JOIN
combiná-los; Eu sou muito novo para SQL
e este pode ser o método errado, daí me postar aqui:
Inquérito:
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)
Table users
contém
UserID
UserLogin
UserPass
Table quiz
contém
QuizID
QuizName
QuizFile
Table results
contém
UserID
QuizID
QuizResults
Alguém pode por favor me diga por que estou recebendo um produto cartesiano, e como eu deveria ir sobre corrigi-lo?
Solução
Tente isto:
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
Uma maneira diferente de perceber algo como um INNER JOIN é esta: +
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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow