簡體   English   中英

從多個表中檢索,同時只允許一列顯示不同的結果

[英]Retrieve from multiple tables while only allowing distinct results for one column

我正在嘗試從三個表中選擇“區域”,“播放器”和“區域播放器”。 並按地區名稱對結果進行排序,然后按玩家最后一次看到該地區的時間進行排序。 我真的很喜歡,這樣我對於每個地區都只會返回一個結果,而這個人的出現時間最長。

SQL。

SELECT RegionName.*, RegionPlayer.*, Players.*
FROM RegionName
    JOIN RegionPlayer
        ON RegionPlayer.Regionkey = RegionName.Key
    JOIN Players
        ON Players.Key = RegionPlayer.Playerkey
GROUP BY RegionName.Name, Players.Seen DESC 

一些表數據。

RegionName
    key Name
    1   regionone
    2   regiontwo
    3   regionthree
    4   regionfouor
    5   regionfive

Players
    Key     Name    Seen
    1       jack    2014-03-21 12:43:46
    2       joe     2014-03-26 12:43:46
    3       bob     2014-03-20 12:43:46
    4       bill    2014-03-19 12:43:46
    5       dave    2014-03-17 12:43:46
    6       tina    2014-03-28 12:43:46
    7       tony    2014-03-29 12:43:46
    8       george  2014-03-15 12:43:46
    9       sam     2014-03-18 12:43:46
    10      frank   2014-03-18 12:43:46

RegionPlayer
    key Regionkey   PlayerKey
    1   1           1
    2   1           4
    3   1           5
    4   2           1
    5   2           4
    6   3           6
    7   3           7
    8   4           1
    9   4           8
    10  4           7
    11  5           3

首先,請接受我的發言。

SELECT RegionName.*, RegionPlayer.*, Players.*
FROM RegionName
    JOIN RegionPlayer
        ON RegionPlayer.Regionkey = RegionName.Key
    JOIN Players
        ON Players.Key = RegionPlayer.Playerkey

並添加

WHERE Players.Seen = (
    SELECT MIN(Players2.Seen) 
    FROM RegionName as RegionName2
    JOIN RegionPlayer as RegionPlayer2
        ON RegionPlayer2.Regionkey = RegionName2.Key
    JOIN Players as Players2
        ON Players2.Key = RegionPlayer2.Playerkey
    WHERE RegionName2.Key = RegionName.Key
    )

然后從您的陳述中選擇GROUP BY

GROUP BY RegionName.Name, Players.Seen DESC 

子選擇返回當前區域中來自玩家的最小日期SEEN。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM