나는 협회에 등록 된 사람들을 관리하기위한 작은 도구를 쓰고 있습니다.SQL : 1 대 다수, 단 하나만 선택
테이블이 USERS
이고 테이블이 CARDS
입니다. 각 사용자는 카드가 만료되어 하나 이상의 카드를 가질 수 있습니다.
한 가지 질문으로 가장 최근의 카드 (필드 : ISSUEDATE)에 대해서만 모든 사용자 정보와 모든 카드 정보를 추출하고 싶습니다.
USERS 테이블
IDUSER NAME SURNAME
------------------------
1 Robert Hill
카드 테이블
기본적으로IDCARD IDOWNER ISSUEDATE DESC
----------------------------------------
1 1 2010-01-01 'CARD ONE'
2 1 2010-08-18 'CARD TWO'
내가 다시 내 질문이 분야에서 좀하고 싶습니다 : 여기
는 매우 기본적인 예입니다 :0 나는 시도,하지만 난 관리 할 수 없습니다 :(
편집 : 사용자에 연결된 카드가없는 경우 어떻게됩니까 ? (한 명의 사용자가 등록되었지만 협회에서 아직 카드를주지 않았 음). 사용자 정보를 다시 가져 오기 위해이 쿼리를 적용 할 수있는 방법이 있습니까? 아이디어는 각 사용자에 대해 가능한 모든 정보를 얻는 것입니다. 이 정보는 나중에 ExtJS 응용 프로그램에서 JSON을 통해 사용됩니다.
답장을 보내 주셔서 감사합니다. "LIMIT 1
그래서, 예외입니다,
select u.IDUSER, u.NAME, u.SURNAME,
c.IDCARD, c.IDOWNER, c.ISSUEDATE, c.DESC
from USERS u
join CARDS c on u.IDUSER = c.IDOWNER
order by c.ISSUEDATE desc
LIMIT 1
스택 오버플로에 대해 수 많은 다른 유사한 질문에 대해서는 'group-n-per-group'태그를 따르십시오. –
"사용자에게 연결된 카드가 없으면 어떻게됩니까?" 무슨 일이 일어나길 원하니? 레코드를 리턴 할 수 없거나 CARDS 테이블의 레코드 필드를 널 (NULL)로 설정할 수 있습니다. – strager
예, 제 편집이 명확하지 않았습니다. 죄송합니다. 가장 좋은 방법은 사용자가 아직 카드가없는 경우 모든 CARDS 열에 대해 NULL 값 집합을 얻는 것입니다. – Danilo