首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql联接查询问题

Mysql联接查询问题
EN

Stack Overflow用户
提问于 2011-06-23 12:44:01
回答 1查看 51关注 0票数 0

我的表

产品

代码语言:javascript
复制
pid name

1    AA
2    bb
3    cc

历史记录表

代码语言:javascript
复制
hid pid uid 
1    1   1
2    1   2
3    1   1  // this one should join with pid 1
4    3   2  // this one should join with pid 3
5    2   3
6    2   1 // this one should join with pid 2

我喜欢在product.The上显示最近的投标人历史表,商店投标人details.if没有出价的产品,只需要返回空即可。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-23 12:54:18

这样怎么样?

代码语言:javascript
复制
SELECT  *
FROM    product p LEFT JOIN
        (
            SELECT  ht.*
            FROM    History_table ht INNER JOIN
                    (
                        SELECT  pid,
                                MAX(hid) last_hid
                        FROM    History_table ht
                        GROUP BY    pid
                    ) lstItem   ON  ht.pid = lstItem.pid
                                AND ht.hid = lstItem.last_hid
        ) ht    ON  p.pid = ht.pid

首先,您需要检索每个pid的最大hid,根据定义,它应该是最新的条目。

然后将其连接回相同的历史表,以检索uid。

最后,将这个(左连接)连接回实际的products表。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6449419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档