繁体   English   中英

如何在另一个SQL查询中使用SQL查询的结果

[英]How can I use the result of a SQL query in another SQL query

我正在使用MySQL在vb.net中编写票务程序。

我想是使用Statename的票证可以有(开启/关闭/暂停/等),我从查询中1得到的,并用它在查询2中得到的所有statenames的列表,与第一的结果作为第一项查询。

我现在互相使用2个查询,但是我敢肯定它可以在1个查询中完成。

查询1:

SELECT StateName 
  FROM Tickets t 
  JOIN States s
    ON s.stateID = t.StateID 
 WHERE TicketNumber = & *intTicketNumber*

->结果=“打开”

查询2:

SELECT StateName 
  from States 
 ORDER 
    BY(case when StateName = '" & *StrStateName* & "' then 0 else 1 end)
     , StateName desc

组合查询的所需结果应为:

  1. 打开
  2. 已分配
  3. 关闭
  4. 等候接听

如何将两个查询结合在一起? 任何帮助将不胜感激!

  • 您可以改为将“ States作为最左边的表,并在stateIDTicketNumber上对Tickets表进行LEFT JOIN 在Join条件下匹配TicketNumber ,而不是Where
  • States作为最左边的表格将确保所有StateName值都将被考虑。
  • 对于特定的TicketNumber, t.StateId将为NULL (在LEFT JOINing之后),一个StateName(当前分配给Ticket)除外。
  • 您可以简单地按降序对t.StateId进行排序。 票证的当前StateName将首先出现在列表中,其余的将排在后面。

尝试使用左连接:

SELECT s.StateName 
FROM States AS s
LEFT JOIN Tickets AS t 
  ON s.stateID = t.StateID AND 
     t.TicketNumber = $intTicketNumber  -- $intTicketNumber is the input variable
ORDER BY t.StateID DESC, 
         s.StateName DESC  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM