Mysql 호출에 어려움을 겪고 있으며 전문 지식을 빌리 길 희망합니다.Mysql 다중 레코드가있는 고유 레코드
나는 내가 원하는 것은 두 개의 선택을 통해서만 가능할 수 있다고 믿는다. 아직 나는 이것들 중 하나를 수행하지 않았으며 이것에 대한 내 머리를 감싸기 위해 고심하고있다. 나는 단지 법안에 대한 하나 개의 레코드를 원하는 사용자 이름 열 즉 만의 고유 레코드를 선택하고자하는 내가 그들에게
을 제공, 가장 최근의 시작일과 하나가 필요
+------------------+----------------------+-------------------------------+
| username | acctstarttime | acctstoptime |
+------------------+----------------------+-------------------------------+
| bill | 22.04.2014 | 23.04.2014 |
+------------------+----------------------+-------------------------------+
| steve | 16.09.2014 | |
+------------------+----------------------+-------------------------------+
| fred | 12.08.2014 | |
+------------------+----------------------+-------------------------------+
| bill | 24.04.2014 | |
+------------------+----------------------+-------------------------------+
:
나는 테이블과 같이가 지난 3 개월 동안 없었던
(end_date는 여기 중요하지 않습니다.) 그렇지 않으면 데이터가 필요하지 않습니다. 요약하면 가장 최근 시작일이 3 개월 이상인 사람이 필요합니다. 그러나
SELECT DISTINCT(username), ra.acctstarttime AS 'Last IP', ra.acctstoptime
FROM radacct AS ra
WHERE ra.acctstarttime < DATE_SUB(now(), interval 3 month)
GROUP BY ra.username
ORDER BY ra.acctstarttime DESC
이 단순히 3 개월 전을 통해 시작 날짜를 가지고 특정 고객에 대한 DATE_START에 대해 나에게 세부 사항을 제공합니다
내가 현재 사용하고있는 명령입니다. 나는 이것에 대한 몇 가지 다른 조합을 지치고 double select 명령을 시도했지만 현재 벽돌 벽을 때리고있다. 어떤 도움이나 옳은 방향으로의 추진은 많은 도움이 될 것입니다.
나는 다음과 같은 만든
업데이트 : 그것이 있어야로 쿼리가있을 때 http://sqlfiddle.com/#!2/f47b2/1
효과적으로 난 단지 1 개 행을 볼 수 있습니다. 이것은 법안의 행이 될 것입니다. 그는 지난 3 개월 이내에 시작 날짜가없는 유일한 사람입니다. 내가 볼 기대 결과는 다음과 같다 :이로
24 bill April, 11 2014 12:11:40+0000 (null)
법안에 대한 최신 시작 날짜가 있지만이 시작 날짜는 최근 3 개월 이내에 없습니다. 바라기를 이것은 명확하게하는 것을 도울 것이다. 지금까지 많은 도움을 주셔서 감사합니다.
http://sqlfiddle.com/#!2/f47b2/14
이
은 또 다른 예이다. 계산서의 acctstartdate가 4 월 항목으로 표시되면 지난 3 개월 동안 where 절을 추가하면 원하는 결과를 얻을 수 있습니다.
를 추가하는 나를 좋아하면 알려줘 : 당신의 좋은 설명을 바탕으로 편집
, 여기에 쿼리 SQLFiddle입니다 ie'WHERE ra.acctstarttime> DATE_SUB (now(), 3 개월 간격) ' – sqlab
@sqlab 질문의 업데이트를 참조하십시오. 많은 감사합니다 –