[英]Selecting from database, based on condition on different columns
我有以下查詢,我認為SQL CASE語句在這里不起作用。 我想從表中選擇一個字段,如果查詢中的條件之一為真,則條件基於不同的列。 我認為用例無法解決問題,因為CASE會檢查特定列中的值。
我可以創建兩個單獨的查詢來完成此任務,是否可以使用一條語句來完成?
查詢:
SELECT
c.Conversation_ID, c.Title, c.Date, u.Name,
(SELECT
COUNT(*)
FROM
conversation_message
WHERE
Conversation_ID = c.Conversation_ID) as Total
FROM
conversation c, user u
WHERE
c.User_ID = ?
OR c.With_User_ID = ?
AND u.User_ID=c.With_User_ID
在當前方案名稱始終為With_User_ID的情況下,我想要的是如果c.User_ID為true則執行u.User_ID = c.With_User_ID,否則,如果c.With_User_ID為true則執行u.User_ID = c.User_ID 。
您是否在where
子句中嘗試過嵌套條件?
例如:
WHERE
(c.User_ID = ? AND u.User_ID = c.With_User_ID)
OR (c.With_User_ID = ? AND u.User_ID = c.User_ID)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.