我有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
这个查询的问题是它只会返回自fromDate以来修改过的Card / Member(即如果一个成员有2张牌而且一个被修改了,因为日期,它将只返回1张牌)。我希望退回会员及其所有卡片,无论是卡片还是会员本身都是在日期之后修改过的。
我怎么能这样查询?或者我需要运行2个查询吗?
答案 0 :(得分:0)
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