问题描述
我是SQL的新手,我遇到了麻烦。
我有3张桌子:
CREATE TABLE indexCodes
{
(indexNum VARCHAR(5) PRIMARY KEY,courseString VARCHAR(10),title VARCHAR(20)
}
CREATE TABLE userid
{
(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,email VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL)
}
CREATE TABLE snipes
{
(snipeNumber INT NOT NULL PRIMARY KEY AUTO_INCREMENT),FOREIGN KEY indexNum REFERENCES indexcodes(indexNum),FOREIGN KEY userID REFERENCES userid(id)
}
使用JOIN语句
SELECT userid.id,userID.email,snipes.indexNum,indexcodes.courseString,== indexcodes.title
FROM userid JOIN
snipes JOIN
indexcodes ON indexcodes.indexNum = snipes.indexNum
我遇到重复的条目。 例如,基于一个用户插入的索引代码将显示所有用户的索引
解决方法
尝试使用这两个选项
-
GROUP BY子句
SELECT userid.id,userID.email,snipes.indexNum,indexcodes.courseString,== indexcodes.title FROM userid JOIN片段 在indexcodes.indexNum = snipes.indexNum上加入索引代码GROUP BY userid.id
-
DISTINCT
选择DISTINCT userid.id,userID.email,snipes.indexNum,indexcodes.courseString,== indexcodes.title FROM userid JOIN片段 在indexcodes.indexNum = snipes.indexNum上加入索引代码
MySQL是唯一支持JOIN
且没有相应的ON
子句的数据库。它确实应该返回错误!
您缺少JOIN
条条件:
SELECT userid.id,userID.email,snipes.indexNum,indexcodes.courseString,== indexcodes.title
FROM user
snipes
ON snipes.userid = user.id JOIN
indexcodes
ON indexcodes.indexNum = snipes.indexNum ;