簡體   English   中英

根據不同列上的條件從數據庫中選擇

[英]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.

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