2012-07-21 40 views
0

我有两个MySQL查询第一个是MySQL的2个查询到一个

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 

需要在一个单一的查询合并这2个查询,这怎么可能?

+0

与mysql_query你不能实际执行2个查询一次 – 2012-07-21 19:07:54

回答

0

福祉同一个表,你可以使用这样的OR语句(唯一的问题是,所有记录都将包含first_namelast_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) 
+0

谢谢..但我需要这两个查询。我需要dob = $ date的人的信息,甚至是!= $ date的人的信息。但以某种方式,我可以在单个while循环中发送电子邮件给谁!= $ date。所以基本上我想在单个while循环中循环两个信息数组。 – user1110597 2012-07-21 19:11:18

1

如果你真的想用一个标注两个独立的结果,我想你可以发出带有标志(result_id)和空值的UNION,其中第二结果没有列:

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 

这样你可以找出一套合适的。

编辑:添加了外部选择,以便我们可以通过我们的“标志”列进行排序,因此我们可以一次处理一个集合。但是在一个结果中,你将只有两个集合,必须进行解析。

+0

如何使用mysql_fetch_array获取?两者的结果都是不同的变量。 – user1110597 2012-07-21 19:19:27

+0

如果你再次读了两个sqls,你会发现......毕竟是一个选择 – ajreal 2012-07-21 19:24:04