相关疑难解决方法(0)

MySQL子查询 - 只查找LEFT JOIN中的第一条记录

我正在尝试显示成员记录列表,我有一些表用于显示我需要的内容.

这很容易.我需要帮助的部分是一个表,每个成员记录有许多记录:登录历史记录

我想只显示每个成员记录的第一行,它存在于"登录历史记录"表中.或者,我可能想要翻转并在Login History表中显示最后一条记录.

这是我到目前为止所得到的:

SELECT m.memberid, m.membername, m.gender, mp.phone
FROM tbl_members m, 
     tbl_members_phones mp, 
     tbl_members_addresses ma
WHERE m.defaultphoneid = mp.phoneid
AND m.defaultaddressid = ma.addressid
Run Code Online (Sandbox Code Playgroud)

所以这会回报预期的结果.

tbl_members_login_history我要添加到返回结果的2列是:mh.loggedtime,嗯.ipaddy

我知道添加tbl_members_login_history作为LEFT JOIN将返回重复项,所以我认为这里必须有一个Subquery必需,以便只返回memberid存在于其中的第一条记录tbl_members_login_history.

我担心的是,如果历史表中没有记录,我仍然希望显示该成员信息,但将历史记录列保留为NULL.

这会是一个子查询事件吗?如果是这样,如何添加那种LIMIT?

mysql subquery greatest-n-per-group

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

greatest-n-per-group ×1

mysql ×1

subquery ×1