簡體   English   中英

MYSQL:如何使其在選擇查詢中成為虛擬列?

[英]MYSQL: How to make it virtual column in select Query?

以下是任何人有主意如何解決此問題的我的問題:

查詢示例:

SELECT id, table2.id as global_id, table3.id as global_id 
FROM table1 
LEFT JOIN table2 
  ON ( table1.id = table2.tab1_id ) 
LEFT JOIN table3 
  ON ( table1.id = table3.tab1_id ) 
WHERE etc etc

基本上我不想在select語句中寫兩次“ global_id”列,並且在某些行中也有id = NULL

你能在這里寫工作查詢嗎? 如何獲取global_id列中所有行的ID值?

謝謝

使用COALESCE

SELECT table1.id, COALESCE(table2.id, table3.id) as global_id 
FROM table1 
LEFT JOIN table2 
  ON ( table1.id = table2.tab1_id ) 
LEFT JOIN table3 
  ON ( table1.id = table3.tab1_id ) 
WHERE etc etc

猜猜你需要這個:

SELECT id, table2.id as global_id
FROM table1 
LEFT JOIN table2 
  ON ( table1.id = table2.tab1_id ) 
WHERE etc etc
UNION ALL
SELECT id, table3.id as global_id 
FROM table1 
LEFT JOIN table3 
  ON ( table1.id = table3.tab1_id ) 
WHERE etc etc

暫無
暫無

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

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