달성하고자하는 것은 실제로 정말 기본이며, 비슷한 해결책을 찾았습니다. 그러나 사용하고있는 MS SQL Compact에서는 작동하지 않을 수 있습니다.다른 테이블에서 MAX 값을 선택하십시오.
내가이 테이블이 있다고 가정하자 :
User Comments
ID | Name UserID | Comment | Posted
-----+------------- -------+-------------------+----------
0 | Adam 1 | Whatever 1 | 2014-01-01
1 | Beth 1 | whatever 2 | 2014-01-02
2 | Chris 0 | Whatever 3 | 2014-01-02
3 | David 3 | Whatever 4 | 2014-01-04
내가 원하는 것이있는 경우, 모든 사용자를 얻고 최신 의견을 제시하는 것입니다. 코멘트가없는 경우는, null가 아니면 안됩니다. 즉 내가이 결과를 원하는이다 :
Name | Comment | Posted
------+------------------+-----------
David | Whatever 4 | 2014-01-04
Beth | Whatever 2 | 2014-01-02
Adam | Whatever 3 | 2014-01-02
Chris | NULL | NULL
내가 무엇을 가지고, 지금까지 (이 예를 들어 간체)이 코드 같은 것입니다 :
SELECT u.Name AS Name, c.Comment AS Comment, c.Posted AS Posted
FROM User AS u
INNER JOIN Comments AS c ON u.ID = c.UserID
INNER JOIN
(
SELECT UserID, MAX(Posted) AS Posted FROM Comments AS c2 GROUP BY UserID
) AS c2 ON c2.Posted = c.Posted ORDER BY Posted DESC
이 어떻게 든 작동,하지만 내 날카로운 예 나는 100 명의 사용자를 갖고 있으며, UserID : s는 93 개의 게시물이다. 하지만 나는 7 개의 NULL 행을 가진 100 개의 행을 가져야 할 때만 84 개의 행을 얻을 수 있습니까? 그래서, 내 질문은 :
1) 내 쿼리
2) 당신이 그것을 어떻게 할 것이 잘못 무엇입니까?
글쎄, 모든 방향을 틀어 봤지만 잘못된 결과를 보았습니다. ;) 같은 수의 게시물을 올렸습니다. – gubbfett
늦은 편집; 나는 당신이 양쪽에 LEFT를 놓친 것을 놓쳤다. 그리고 그것은 나에게 수백 개의 줄을 주었다. 하지만, 100 가지 이상의 사용자를 모두 제공하지는 못하기 때문에 내 쿼리가 실제로 적절하지 않은 경우도 있습니다. – gubbfett
@ gubbfett. . . 어떻게 될지 알 수 있습니다. 'join '은 올바른 순서로 이루어져야합니다. –