我有两个mysql查询,第一个是
SELECT `first_name` , `last_name` , `email` , `mobile`
FROM `member_master`
WHERE `id` = $member_id AND `dob` = $date
,第二个是
SELECT `email`
FROM `member_master`
WHERE `id` = $member_id AND `dob` != $date
需要在一个查询中合并这两个查询,这怎么可能?
答案 0 :(得分:1)
如果你真的想要一个带有一个标注的两个单独的结果,我想你可以发出一个带标志的UNION(result_id)和第二个结果没有列的空值:
select * from
(
SELECT 1 as result_id
, first_name
, last_name
, email
, mobile
FROM member_master
WHERE id = $member_id AND dob = $date
union
SELECT 2 as result_id
, null
, null
, email
, null
FROM member_master
WHERE id = $member_id AND dob != $date
) my_result
order by result_id
通过这种方式,您可以识别出合适的集合。
编辑:添加了外部选择,以便我们可以通过“flag”列进行排序,这样我们就可以一次处理一组。但是你必须在一个结果中有两个集合,必须进行解析。
答案 1 :(得分:0)
同样的表你可以使用这样的OR语句(唯一的问题是所有记录都包含first_name
,last_name
等):
SELECT `first_name` , `last_name` , `email` , `mobile`
FROM `member_master` WHERE (`id` = $member_id AND `dob` = $date ) or ( `id` = $member_id AND `dob` != $date)