代码之家  ›  专栏  ›  技术社区  ›  NVG

MySQL自定义选择查询

  •  0
  • NVG  · 技术社区  · 14 年前

    我有这两个MySQL查询

    SELECT `name` AS name1,`id` AS id1 FROM `table` WHERE id=1
    SELECT `name` AS name2,`id` AS name2 FROM `table` WHERE id=2
    

    结果将按如下方式输出

    NAME1  ID1
    john  1
    NAME2  ID2
    meg   2
    

    在2个查询中,是否有1个查询,它将在同一个表的1行中显示所有结果?

    NAME1   ID1  NAME2   ID2
    john     1   meg     2
    
    5 回复  |  直到 14 年前
        1
  •  0
  •   pleasedontbelong    14 年前

    从mytable tbl1、mytable tbl2中选择tbl1.name、tbl1.id、tbl2.name、tbl2.id。

    但是这个查询会很混乱,它会给您两个名称的全部组合,从您的表中按任意顺序排列,您可以使用WHERE子句进行筛选,但是……你有几个名字?为什么这么做?如果我们知道你想做什么,也许我们可以给你一个更好的答案。

    编辑 噢,我看到你的问题了……应该是这样的

    select tbl1.name,tbl1.id,tbl2.name,tbl2.id from mytable tbl1,mytable tbl2  where tbl1.id=1 and tbl2.id=2
    
        2
  •  2
  •   carl    14 年前
    SELECT t1.name AS name1, t1.id AS id1, t2.name as name2, t2.id as id2
    FROM table as t1, table as t2 WHERE t1.id = 1 and t2.id = 2;
    
        3
  •  1
  •   Thomas    14 年前
    Select Min( Case When Id = 1 Then Id End ) As Id1
        , Min( Case When Id = 1 Then Name End ) As Name1
        , Min( Case When Id = 2 Then Id End ) As Id2
        , Min( Case When Id = 2 Then Name End ) As Name2
    From `table`
    Where Id In(1,2)
    
        4
  •  0
  •   Aaron Hathaway    14 年前

    你的意思是使用或在WHERE子句中?像:

    SELECT `name`,`id` FROM `table` WHERE id=1 OR id = 2
    
        5
  •  0
  •   Ryan Twilley    14 年前

    您可以这样组合查询

    SELECT `name`,`id` FROM `table` WHERE id=1 OR id=2
    

    但是,你仍然会得到两个结果。您试图如何处理结果输出?