![](/img/trans.png)
[英]MYSQL How do I select data from one table only where column values from that table match the column values of another table?
[英]How do I take data from one table, and overwrite it from another table, with a SELECT statement in MySQL?
好吧,讓我嘗試解釋這個問題...
我有兩個表: movieitems
和movieitems_custom
。 它們都有相同的條形碼 , 標題 , 運行時和用戶名列 。
我想要一個查詢或存儲過程,該查詢或存儲過程將從movieitems
(以獲取用戶擁有的電影的詳細信息),然后從movieitems_custom
提取並覆蓋返回數據(以獲取用戶的自定義數據條目)。
請注意, movieitems_custom
並非總是有來自movieitems
的匹配條目,只是有時是這樣。
這是一個例子:
用戶的movieitems
包含他擁有的用戶'joe'
以下兩項:
1234-蝙蝠俠開始-120分鍾
1235-12猴子-97分鍾
在movieitems_custom
我們可以為他定制的'joe'
有一個這樣的條目:
1234-蝙蝠俠1又名蝙蝠俠開始-120分鍾
我想要我的陳述/程序返回的是:
1234-蝙蝠俠1又名蝙蝠俠開始-120分鍾
1235-12猴子-97分鍾
是某種類型的JOIN
語句足以實現此目的,還是我正在尋找更復雜的東西?
SELECT
I.barcode,
IFNULL(C.title, I.title) AS title,
I.runtime,
I.username
FROM
movieitems I
LEFT JOIN movieitems_custom C
ON I.barcode = C.barcode AND I.username = C.username
您需要使用COALESCE,您可以在此處閱讀
http://msdn.microsoft.com/en-us/library/ms190349.aspx
基本上,如果有任何NULL,它將讓您指定從何處獲取值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.