【发布时间】:2015-02-09 11:51:58
【问题描述】:
查询一个表然后将结果传递给另一个表中的另一个查询的最佳方法是什么,但只有在第二个查询返回 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 新手,所以如果有更好的方法可以做到这一点,我很想学习,谢谢!
【问题讨论】:
-
您的第一个查询与第二个查询的关系以及您的第二个查询似乎错误的另一件事请把您的完整查询作为第二个查询可能喜欢 SELECT memberid1, (select member id from x) as menberid2 from family其中列为空。
-
它们是相关的。第一个查询根据用户的电子邮件检索用户的 ID。然后在 FAMILY 表中将该 ID 用作第二个查询的 member2Id。如果第二个查询为空,则成员不相关。如果它们不相关(由第二个查询确定),那么我想要用户 ID、姓名和电子邮件(由第一个查询检索)。这是否回答你的问题?上面的查询不一定正确,只是我试图解释更多关于我正在尝试做的事情。
-
是的。所以在这里你可以使用相关查询来获得期望的输出。你能不能建立你的相关查询。告诉我。
标签: php mysql mysqli mysql-workbench