我正在尝试显示一组成员记录,为此使用了几个表来显示所需的内容。
这是很容易的部分。我需要帮助的部分是有一个表格有许多记录与每个成员记录相关联:登录历史记录。
我想仅显示存在于登录历史记录表中的每个成员记录的第一行。或者,我可能只想交换并显示登录历史表中的最后一条记录。
以下是我迄今为止所做的:
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
这样可以返回预期的结果。
我想在返回的结果中添加来自tbl_members_login_history
的两列: mh。loggedtime
,mh。ipaddy
我知道将tbl_members_login_history
添加为LEFT JOIN会返回重复项,所以我认为这里必须有一个子查询来仅返回存在于tbl_members_login_history
中的那个memberid的第一个记录。
我担心的是如果历史记录表中没有记录,我仍然希望显示该会员信息,但将历史记录列设置为NULL。
这是否是一个子查询问题?如果是,如何添加这种类型的LIMIT?