簡體   English   中英

合並來自同一表但具有不同WHERE子句的兩個SELECT查詢

[英]Combining two SELECT queries from same table but different WHERE clause

我有一個名為WORKOUTS的表,該表具有名為“ install_time”和“ local_id”的列。 兩者都具有列類型整數。 它們是UNIQUE鍵。我寫了兩個查詢,如下所示:

SELECT * from workouts where install_time = 123456 and local_id > 5

SELECT * from workouts where install_time = 987643 and local_id > 19

現在,我想將這些查詢和一個where子句結合起來以處理這種情況,但找不到解決方法。

編輯

SELECT * from workouts where install_time = 123456 and local_id > 5 and date = xyz
SELECT * from workouts where install_time = 987643 and local_id > 19 and date = xyz
SELECT * 
FROM workouts 
WHERE 
    (install_time = 123456 AND local_id > 5 AND date = xyz)
    OR 
    (install_time = 987643 AND local_id > 19 AND date = xyz)

使用OR關鍵字時也要小心。 您必須小心放置括號。

這是有關此主題的更多信息http://www.w3schools.com/sql/sql_and_or.asp

SELECT * 
FROM workouts 
WHERE 
    date = xyz
    AND (
      (install_time = 123456 AND local_id > 5)
      OR 
      (install_time = 987643 AND local_id > 19)
    )
SELECT * from workouts where install_time = 123456 and local_id > 5 and date = xyz
Union
SELECT * from workouts where install_time = 987643 and local_id > 19 and date = xyz

這取決於您“將這兩個查詢合並”的意思 如果您想要一個返回上述兩個查詢的結果的結果集,則可以嘗試使用OR運算符。 以下假設兩個local_iddate字段相同。

SELECT * FROM workouts
WHERE date = xyz
AND (
   (install_time = 123456 AND local_id > 5)
   OR (install_time = 987643 AND local_id > 19)
);

可以簡單地做到

SELECT * from workout where date=xyz and (install_time = 123456 and local_id > 5) or (install_time = 987643  and local_id> 19)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM