繁体   English   中英

从第一个表中选择一行,然后联接多个

[英]Select one row from first table then join multiple

我有下表

客户

client_id | client_name
2         | client 1
3         | client 2
4         | client 3

新闻发布

press_release_id | date                  | title                 | client_id
1                | 2012-10-16 00:00:00   | new press release     | 3
2                | 2012-10-16 00:00:00   | worlwide news         | 2

新闻发布内容

press_release_id | content | translation
1                | content | en
2                | content | fr

我想编写一个查询,该查询基本上为每个客户选择最新的新闻稿。 对于每个新闻稿,该列表仅返回1位客户

太感谢了

尝试这个:

SELECT 
  c.client_name,
  pr.date,
  pr.title, 
  pc.content,
  pc.translation
FROM clients c
INNER JOIN pressreleases pr ON c.client_id = pr.client_id
INNER JOIN
(
   SELECT 
     press_release_id, MAX(date) LatestDate
   FROM pressreleases 
   GROUP BY press_relaese_id
) pl ON pr.press_release_id = pl.press_release_id AND pr.date = pl.latestdate
INNER JOIN press releasecontent pc ON pr.press_release_id = pc.press_release_id
SELECT  a.*, b.*, d.*
FROM    clients a
        INNER JOIN pressReleases b
            ON a.client_ID = b.client_ID
        INNER JOIN
        (
            SELECT client_ID, MAX(date) maxDate
            FROM pressReleases
            GROUP BY client_ID
        ) c ON b.date = c.mAxDate AND
                b.client_ID = c.client_ID
        INNER JOIN pressReleaseContent d
            ON b.press_release_id = d.press_release_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM