首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将2个查询合并为一个查询

将2个查询合并为一个查询
EN

Stack Overflow用户
提问于 2013-10-10 07:40:51
回答 3查看 71关注 0票数 0

我有两个问题

代码语言:javascript
复制
Select * From wp_booking_transaction
Where DATE(launched) >= "2013-10-10" And DATE(launched) <= "2013-11-10" 
And action = 1 status = 1 And type = 2 And student_id = 81569 
Order by launched desc

代码语言:javascript
复制
Select * From wp_booking_transaction 
Where (DATE(launched) >= "2013-10-10" And DATE(launched) <= "2013-11-10" 
And status = 0 And type = 2 And student_id = 81569) And (action = 21 Or action = 20) 
Order by launched desc

所需经费:

获取具有action = 1但有status = 1的行和具有(action = 20 or action = 21)但有status = 0的行。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-10 07:48:07

代码语言:javascript
复制
SELECT   *
FROM     wp_booking_transaction
WHERE    /* Conditions that appeared in both original queries */
         DATE(launched) >= "2013-10-10" 
AND      DATE(launched) <= "2013-11-10"
AND      type = 2 
AND      student_id = 81569
AND      /* Conditions that are different between the two queries */
         ((action = 1 AND status = 1) OR (action IN(20, 21) AND status = 0))
ORDER BY launched DESC
票数 1
EN

Stack Overflow用户

发布于 2013-10-10 07:44:51

尝试使用UNION

代码语言:javascript
复制
Select 
    * 
From 
    wp_booking_transaction 
Where 
    DATE(launched) >= "2013-10-10" 
    And DATE(launched) <= "2013-11-10" 
    And action = 1 
    And status = 1 
    And type = 2 
    And student_id = 81569 

UNION ALL

Select 
    * 
From 
    wp_booking_transaction 
Where (
        DATE(launched) >= "2013-10-10" 
        And DATE(launched) <= "2013-11-10" 
        And status = 0 
        And type = 2 
        And student_id = 81569
    ) 
    And (
        action = 21 
        Or action = 20
    ) 
Order by launched desc

BTW如下:

代码语言:javascript
复制
And (
        action = 21 
        Or action = 20
    ) 

可以写成

代码语言:javascript
复制
And action IN (21,20)
票数 2
EN

Stack Overflow用户

发布于 2013-10-10 07:47:09

您可以在两个查询之间使用并-- all _union_ queries

代码语言:javascript
复制
Select * From wp_booking_transaction
Where DATE(launched) >= "2013-10-10" And DATE(launched) <= "2013-11-10" 
And action = 1 status = 1 And type = 2 And student_id = 81569 
union all
Select * From wp_booking_transaction 
Where (DATE(launched) >= "2013-10-10" And DATE(launched) <= "2013-11-10" 
And status = 0 And type = 2 And student_id = 81569) And (action = 21 Or action = 20) 
Order by launched desc
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19289820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档