[英]MySQL joining tables WHERE clause
我有2个表:Member和Member_Card。 Member_Card有一个链接到Member Id列的列,因此Member与Member_Card有一对多关系
我输出一个JSON,例如:
{
"Name" : "Member Name",
"Cards": [
{ "Card_No" : "1234"},
{ "Card_No" : "4321"}
]
}
Member和Member_Card都具有LastModifiedDate列。
我的查询是这样的:
SELECT Name FROM Member
LEFT JOIN Member_Card
ON Member_Card.Member = Member.id
WHERE Member.LastModifiedDate >= sinceDate
OR Member_Card.LastModifiedDate >= sinceDate
此查询的问题在于,它将仅返回自sinceDate以来修改过的Card / Member(即,如果某个成员有2张卡,而afterDateDate对其进行了修改,则只会返回1张卡)。 我想归还该成员及其所有卡片,无论是在afterDate之后修改了卡片还是成员本身。
我怎么能这样查询? 还是我需要运行2个查询?
SELECT member.*,c.* from member inner join (
SELECT distinct member.id as mid FROM Member
INNER JOIN Member_Card
ON Member_Card.Member = Member.id
and ( Member.LastModifiedDate >= sinceDate
OR Member_Card.LastModifiedDate >= sinceDate ) ) a on a.mid=member.id
inner join member_card c on c.member=a.mid
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.