![](/img/trans.png)
[英]MySQL Select distinct column A from table where column B exists or if none with column B then latest based on column C
[英]MYSQL: Select column from table B if it exists, otherwise from table A
Table A
Name Value
John 1
Mary 2
Gary 3
Table B
Name Value
Jim 10
Jason 20
Mary 30
我想要表A的名稱和值,但是如果表B中存在,則覆蓋值。因此,我的預期輸出將是:
John,1
Mary,30
Gary,3
我正在嘗試類似的東西:
SELECT A.Name, IF(EXISTS(B.Value),B.Value,A.Value) FROM Table A LEFT JOIN Table B on B.Name=A.Name
您可以為此使用Mysql COALESCE
函數。 它將返回參數列表中的第一個非空參數:
因此,您的代碼將類似於:
SELECT A.Name,
coalesce(B.Value,A.Value)
FROM Table A LEFT JOIN Table B on B.Name=A.Name
因此,將發生的情況是,如果表B中有一個值,則將使用該值,否則將還原為A。
參見文檔: http : //dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_coalesce
嘗試以下方法:
SELECT
A.Name,
CASE WHEN b.Name IS NULL THEN a.Value ELSE b.value END AS value
FROM TableA AS a
LEFT JOIN TableB AS b on B.Name=A.Name;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.