MySQL使用另一个表中的一个有序结果左连接

MySQL使用另一个表中的一个有序结果左连接,mysql,left-join,Mysql,Left Join,我有两个表:产品和新闻-新闻是关于产品的,所以新闻表有行pid(用于产品id),新闻有不同的日期,所以可以按日期排序。 我需要一个查询来显示products表中的一些数据,并将一个最新的新闻标题和日期附加到该表中-我尝试使用如下查询: SELECT products.product_title, products.`product_key`, news.`news_date`, news.`news_text` FROM products LEFT JOIN news ON products.`

我有两个表:产品新闻-新闻是关于产品的,所以新闻表有行pid(用于产品id),新闻有不同的日期,所以可以按日期排序。 我需要一个查询来显示products表中的一些数据,并将一个最新的新闻标题和日期附加到该表中-我尝试使用如下查询:

SELECT products.product_title, products.`product_key`,
news.`news_date`, news.`news_text` FROM products LEFT JOIN
news ON products.`product_key`= (SELECT news.`pid` FROM news
WHERE news.`pid` = products.`product_key`
ORDER BY news.`news_date` DESC LIMIT 1)
ORDER BY products.`product_title`

但它不能正常工作,可能是我应该使用GROUP BY运算符而不是子查询?

这是
未测试的
,如果它给出无效结果,我愿意编辑

SELECT  a.product_key, a.product_title, 
        b.news_text, MAX(b.news_date)
FROM products a LEFT JOIN news b
        on a.product_key = b.pid
GROUP BY a.product_key, a.product_title, b.news_text

终于找到了-正确的做法是从第二个表中获取最大行值,然后将其添加到WHERE条件:

SELECT products.product_title, products.product_key, news.news_date,
news.news_text FROM products LEFT JOIN news ON products.product_key= news.pid
WHERE news.news_date = (SELECT MAX(news.news_date) FROM news WHERE news.pid = products.product_key) ORDER BY products.product_key

它为我提供了一个额外的专栏,其中列出了该产品的最长发布日期,但并没有提供该确切新闻项目的所有其他数据