两张表,左连接。用于缓解表1和表2.SQL左连接返回最近行
表1包含人员及其当前状态的列表,表2是其所有“邀请”。所有即时通讯尝试作为连接的一部分在列表中显示所有当前的“人员”,然后显示最新的邀请状态(从表2),因此返回表2中的单个行。
我有一切正常工作。 ..但它的复制,例如,如果一个人有多个邀请它会把他们两次的名单。我只是想限制它到
$sql = "SELECT table1.fieldname as table1fielname table2.fieldname [more fields]
FROM xxx
LEFT JOIN xxx on table1.sharedid=table2.sharedid
WHERE XXX LIMIT 1 ";`
Obvioulsy极限1不做它应该的。我试图在括号中添加额外的选择语句,但说实话它只是打破了一切,我根本不是专家。
使用DISTINCT和/或GROUP BY,如果你想避免重复 –
如果您只需要从表2一个领域,你可以用被设计为一个子查询做到这一点先选择,然后按最新日期排序子查询。 'SELECT table1.fieldname,(SELECT FIRST table2.invitestatus FROM table2 WHERE table1.shareid = table2.shareid ORDER BY table2.date desc)AS InviteStatus FROM ... WHERE ...' –
@LudvigRydahl感谢您的建议,尽管im仍然努力让它工作 - 你的方式或你说删除加入?还是保留它? – it05jb