作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道之前有人问过这个问题,但我很难理解。我很少使用原始 SQL。
我有三个表 - Session
、GroupName
和 GroupSessionFeedback
。
我正在 idUser
上加入 Session
到 GroupFeedback
我正在将 GroupName
加入 idGroup
列的 Session
。
这是我的 SQL 代码:
SELECT s.idSession,
g.name,
s.Assistant,
s.idGroup,
s.start,
s.end,
f.value
FROM rempad.Session s
INNER JOIN rempad.GroupSessionFeedback f
ON s.idUser = f.idUser
INNER JOIN rempad.GroupName g
ON s.idGroup = g.idGroup
WHERE s.start BETWEEN '2013-04-28' AND '2013-05-28'
AND s.idUser = 22
OR s.idUser = 23
OR s.idUser = 24
OR s.idUser = 26
OR s.idUser = 27
OR s.idUser = 28
OR s.idUser = 42;
我希望它带回唯一的 idSessions
但由于连接,它会多次匹配它,我真的不知道该采取什么其他方法。我可以对数据库进行单独的调用 - 但我真的试图避免破坏数据库,因为它的响应速度非常慢。
有什么想法吗?
提前致谢
最佳答案
我在此页面上使用了示例:SQL query returning cartesian product弄明白。公平地说,我没有在我的问题中提供数据库结构。但问题是,在我加入的每个表中,都有不止一个匹配的列,因此我需要在我的加入语句中反射(reflect)这一点。这是一个示例
INNER JOIN rempad.GroupSessionFeedback f
ON s.idUser = f.idUser
AND s.idSession = f.idSession
AND s.idGroup = f.idGroup
我希望这对其他人有帮助。大号
关于sql - 避免使用内部连接的笛卡尔积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18551131/
我是一名优秀的程序员,十分优秀!