作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一个在互联网上找不到的 SQL 请求(我自己也没有找到解决方案)。
我有两个不同的表用户和历史记录以及链接这两个表的表 user_history。
例如:
<小时/> id name
1 John
2 Edie
3 France
4 Gabriel
5艾伦
<小时/> id date_entered type
1 2017-07-01 36
2 2017-07-02 52
3 2017-07-03 25
4 2017-07-04 69
5 2017-07-05 85
6 2017-07-06 74
7 2017-07-07 45
8 2017-07-08 85
9 2017-07-09 25
10 2017-07-10 78
<小时/>
id id_user id_history
1 1 1
2 1 2
3 1 3
4 1 4
5 2 5
6 2 6
7 1 7
8 1 8
9 2 9
10 1 10
在此示例中,所有历史记录均由用户 1 和 2 创建(用户 2 具有历史记录 5,6 和 9)。
所以问题是:
什么 SQL 请求可以让我获得历史记录类型为 25 的所有用户,然后在几天后获得历史记录类型 85?
在此示例中,只有用户 1 (John) 可以,因为他在 2017-07-03 的历史记录类型为 25,然后在 2017-07-08 的历史记录类型为 85。用户 2 (Edie) 不好,因为即使他有 25 和 85 的历史记录,第一个也是 85 和 25。
清楚了吗?你能帮我吗 ?
最佳答案
您需要与HISTORY
表JOIN
两次,例如:
SELECT h1.id_user
FROM (
SELECT u.id_user, h.date_entered
FROM user_history u
JOIN history h ON u.id_history = h.id
WHERE h.type = 25) h1
JOIN (
SELECT u.id_user, h.date_entered
FROM user_history u
JOIN history h ON u.id_history = h.id
WHERE h.type = 85
) h2 ON h1.id_user = h2.id_user
WHERE h1.date_entered < h2.date_entered;
这是SQL Fiddle 。
关于mysql - SQL 按一定顺序查找具有两个历史记录的所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306019/
我正在尝试开发右边框/Angular 具有特定 Angular (30°) 的表格。我见过一些类似的解决方案,但它们都无法在一定程度上发挥作用。如果我想从 30° 改变到 20°,我不想花太多力气。
我是一名优秀的程序员,十分优秀!