Проблема многопользовательского запроса MySQL - PullRequest
0 голосов
/ 08 апреля 2009

У меня проблема с запросом нескольких таблиц в 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

Может кто-нибудь сказать, почему я получаю декартово произведение и как мне его починить?

1 Ответ

2 голосов
/ 08 апреля 2009

Попробуйте это:

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

Другой способ реализовать что-то вроде ВНУТРЕННЕГО СОЕДИНЕНИЯ: +

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...