簡體   English   中英

如何根據條件值創建mysql查詢結果?

[英]How create mysql query result according to where condition values?

我想要這種出局

ID      Status
100     Viewed
103     Not Viewed
105     Viewed

這是我的sql:

select id, status from status_table where ID in (100, 101,102,103,104,105);

它將顯示上述結果,因為在狀態表中,其他ID沒有任何條目。 ID is foreign key of another table named as table_file table. It contains in another database. So I cannot join the table due to some performance issue. 所以我將文件ID作為逗號分隔值傳遞。 但是我想要這種結果如何在不使用任何循環的情況下創建它。

ID    Status
100   Viewed
101   Not
102   Not
103   Viewed
104   Not
105   Viewed

可能嗎? 請幫我。

你有一張表存在這些ID嗎? 那么你可以加入嗎?

SELECT
  source.ID,
  status.value
FROM
  source
LEFT JOIN
  status
    ON status.id = source.id
WHERE
  source.ID in (100, 101,102,103,104,105);

如果沒有,則需要創建臨時表或內聯表(其中包含這些值)。 然后,您可以將該表加入您的數據。

編輯

內聯表的示例。 有幾種方法可以做到這一點,這只是一種方法。

SELECT
  source.ID,
  status.value
FROM
  (
    SELECT 100 AS id UNION ALL
    SELECT 101 AS id UNION ALL
    SELECT 102 AS id UNION ALL
    SELECT 103 AS id UNION ALL
    SELECT 104 AS id UNION ALL
    SELECT 105 AS id
  )
  AS source
LEFT JOIN
  status
    ON status.id = source.id

ID丟失時假設'不',你可以這樣做:

SELECT
  so.ID,
  CASE WHEN st.value IS NULL THEN 'Not' ELSE st.value END
FROM
  databasename1..source so
LEFT JOIN
  databasename2..status st
    ON st.id = so.id
WHERE
  so.ID in (100, 101,102,103,104,105)

databasename1databasename2替換為實際database names

暫無
暫無

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

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