簡體   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