如何从一个表中获取数据,并使用MySQL中的SELECT语句从另一个表中覆盖它?

时间:2013-10-14 17:47:38

标签: mysql sql stored-procedures

好的,让我试着解释一下这个问题......

我有两个表:movieitemsmovieitems_custom。它们都具有条形码标题运行时用户名的相同列。

我想要一个查询或存储的采购,它将从movieitems拉出(以获取用户拥有的电影的详细信息),然后从<{1>中拉出覆盖返回数据(获取用户的自定义数据条目)。

请注意movieitems_custom并非始终只有来自movieitems_custom的匹配条目。


以下是一个例子:

用户的

movieitems包含他拥有的用户movieitems的这两项:

1234年 - 蝙蝠侠开始 - 120分钟

1235 - 12只猴子 - 97分钟

'joe'我们可以为他定制的movieitems_custom创建一个这样的条目:

1234年 - 蝙蝠侠1又名蝙蝠侠开始 - 120分钟

我希望我的陈述/程序返回的是:

1234年 - 蝙蝠侠1又名蝙蝠侠开始 - 120分钟

1235 - 12只猴子 - 97分钟


某种类型的'joe'声明是否足以让这种情况发生,或者我正在寻找更复杂的东西?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你需要使用COALESCE,你可以在这里阅读

http://msdn.microsoft.com/en-us/library/ms190349.aspx

基本上它可以让你指定从哪里获取值,如果有的话。