0

私は2つのmysqlクエリを持っています.最初のものは

SELECT  `first_name` ,  `last_name` ,  `email` ,  `mobile`
FROM  `member_master` 
WHERE  `id` = $member_id  AND  `dob` =  $date

そして2つ目は

SELECT  `email` 
FROM  `member_master`
WHERE  `id` = $member_id  AND  `dob` !=  $date

この 2 つのクエリを 1 つのクエリにマージする必要があります。

4

2 に答える 2

1

1つのコールアウトで2つの別々の結果が本当に必要な場合は、2番目の結果に列がない場合にフラグ(result_id)とnullを使用して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

そうすれば、適切なセットを特定できます。

編集:「フラグ」列で注文できるように外側の選択を追加したので、一度に1セットを処理できます。ただし、1つの結果内に2つのセットがあり、それらを解析する必要があります。

于 2012-07-21T19:13:00.340 に答える
0

同じテーブルであれば、次のような OR ステートメントを使用できます (唯一の問題は、すべてのレコードに first_name, last_nameetc が含まれることです):

 SELECT  `first_name` ,  `last_name` ,  `email` ,  `mobile`
                   FROM  `member_master` WHERE  (`id` = $member_id  AND  `dob` =  $date ) or ( `id` = $member_id  AND  `dob` !=  $date)
于 2012-07-21T19:04:00.700 に答える