查询表的最佳方法是什么,然后将结果传递给另一个表中的另一个查询,但如果第二个查询返回null或为空,则只保留第一个查询的结果?
我正在尝试SELECT id, name, email FROM ACCOUNT WHERE email IN ('George@yahoo.com', 'Tom@aol.com')
然后获取返回的ID和SELECT memberId=1 and member2Id = (the returned id) FROM FAMILY IF NULL
。如果为NULL,则返回第一个查询中的数据,否则从第一个查询中的结果中删除该成员。
最有效的方法是什么?最初我打算做第一个查询。然后将结果id传递给数组。然后遍历在第二个查询中传递id的数组,如果它返回非null,那么我将从数组中删除id。然而,这似乎非常低效,因为我将运行两个单独的查询。我是SQL的新手,所以如果有更好的方法,我很乐意学习,谢谢!
答案 0 :(得分:0)
我认为你正在谈论的是什么,但你可能需要扩展你的解释:
SELECT id, name, email FROM ACCOUNT
WHERE email IN ('George@yahoo.com', 'Tom@aol.com')
AND id not in (select member2Id from FAMILY where memberId=1)