查询在第二个查询中传递结果的两个单独的表,而在第二个查询返回null时仅保留第一个查询的结果

时间:2014-12-11 04:24:46

标签: php mysql mysqli mysql-workbench

查询表的最佳方法是什么,然后将结果传递给另一个表中的另一个查询,但如果第二个查询返回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的新手,所以如果有更好的方法,我很乐意学习,谢谢!

1 个答案:

答案 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)