[英]sql left join +one to many relationship
我有三个表 - node,content_type_product和share_content。 节点和share_content之间可能存在1:N关系。 我想每个id只能输出一条记录。 如果share_content中有多条记录,我想要最新的记录,即sc.auto_id的最高值
SELECT sc.uid, n.uid, n.nid, sc.message
FROM node n
LEFT JOIN content_type_product p ON n.nid = p.nid
LEFT JOIN share_content sc ON n.nid = sc.nid
WHERE n.nid = 40513
GROUP BY sc.nid
ORDER BY sc.auto_id
你为什么要加入content_type_product? 但是,除此之外,试试吧
SELECT c.uid, n.uid, n.nid, c.message
FROM node n
LEFT JOIN share_content c
ON c.nid = n.nid
And c.auto_id
= (Select Max(auto_id)
From share_content
Where nid = p.nid )
Where n.nid = 40513
ORDER BY c.auto_id
尝试:
SELECT sc.uid, n.uid, n.nid, sc.message FROM node n left join content_type_product p on n.nid = p.nid LEFT JOIN share_content sc on n.nid = sc.nid
WHERE n.nid = 40513
GROUP BY sc.nid, sc.auto_id
ORDER BY sc.auto_id DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.