【问题标题】:How to select data from table with different conditions in the same query如何在同一查询中从具有不同条件的表中选择数据
【发布时间】:2014-10-30 19:16:39
【问题描述】:

我有一个表,我想从这个表中选择条件 type =1 , type =2, type =3 的数据,每个类型限制为 5。

如果我使用以下命令,3个表连接到彼此);所以我有 5x5x5 = 125 条记录!

SELECT * 
FROM 
( 
  ( select * from `question` where type = 1 limit 5) as t1 , 
  (select * from `question` where type = 2 limit 5) as t2, 
  (select * from `question` where type = 3 limit 5) as t3
)

如何仅使用 1 个命令选择此数据,从而获得包含 15 条记录的表?

【问题讨论】:

    标签: mysql


    【解决方案1】:
    (SELECT * FROM question WHERE type = 1 LIMIT 5)
    UNION
    (SELECT * FROM question WHERE type = 2 LIMIT 5)
    UNION
    (SELECT * FROM question WHERE type = 3 LIMIT 5)
    

    【讨论】:

      【解决方案2】:

      你应该使用联合声明

        (select * from question where type = 1 limit 5)
        UNION
        (select * from question where type = 2 limit 5)
        UNION
        (select * from question where type = 3 limit 5)
      

      【讨论】:

      • 我使用联合,但它只返回一个包含 5 条类型 = 1 记录的表?
      • UNION 只是连接结果。如果你只使用第二个或第三个查询,你会得到预期的结果吗?
      • @geoandri,如果您使用了这个查询,那么它将不起作用,因为 select 语句应该在括号中。看看我的回答。它将返回所需的结果。
      • 不,它也可以在没有括号的情况下完美运行。你检查了吗?
      • 是的,我已经检查过了。我的答案和你的一样,但是当 OP 评论你的答案时,我测试了它,他是对的,它没有产生正确的结果,所以我添加了括号,它产生了预期的结果。所以我编辑了我的答案。
      猜你喜欢
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多