다음 쿼리가 있습니다. 내 그룹 내에서 가장 오래된 행 (DATE 열 기준) 만 선택해야합니다. 나의 조건을 지킨다.mysql은 조건에 따라 그룹 내 조건을 정의합니까?
SELECT
table.*
from table
where views > $views AND sales>23
group by
name
조금 선명가 나는 일을 시도
이 두번째
+--------------------+-----------+--------------------+-----------+
| name | views | DATE | sales |
+--------------------+-----------+--------------------+-----------+
| sue3 | 494 | 2014-06-27 12:08:29| 45 |
| sue4 | 520 | 2014-06-26 12:08:29| 56 |
| sue5 | 570 | 2014-06-24 12:08:29| 28 |
+--------------------+-----------+--------------------+-----------+
marko.c에 FRM이 첫번째 테이블
+--------------------+-----------+--------------------+-----------+
| name | views | DATE | sales |
+--------------------+-----------+--------------------+-----------+
| sue1 | 494 | 2014-06-23 12:08:29| 26 |
| sue2 | 494 | 2014-06-25 12:08:29| 34 |
| sue3 | 494 | 2014-06-27 12:08:29| 45 |
| sue4 | 520 | 2014-06-26 12:08:29| 56 |
| sue5 | 570 | 2014-06-24 12:08:29| 20 |
| sue5 | 570 | 2014-06-24 12:08:29| 28 |
+--------------------+-----------+--------------------+-----------+
통과 같다 될 이 부분을 다음으로 선택하십시오.
SELECT
table.*
from table
where views > $views AND sales>23
and date in (select max(date) from table where views > $views AND sales>23)
group by
name
하지만 작동하지 않습니다. 아무도?
무엇을 말하고 있습니까? – evanv
ORDER BY DATE DESC LIMIT 1을 사용할 수 있습니다. 이렇게하면 결과가 DATE IN 내림차순으로 1 행 만 표시됩니다. 그것이 당신을 위해 작동하는지 알려주세요. –
원하는 출력은 무엇입니까? –