MySQL:从具有相同列名的联接表中选择非空值

时间:2015-02-04 13:21:10

标签: mysql join

在我的数据库结构中,我有两个表,其中一些列包含相同的名称。 对于此示例,我有表productsproducts_options。两个表都有sku列。

可能在两个表中或在任一表中填充列。 我想知道是否可以在查询的SELECT部分添加内容以选择SKU,如下所示:

  • 如果skuproducts_options为空,而products中不为空:返回products
  • 的值
  • 如果sku中的products_options不为空,而products中未为空:请返回products_options
  • 的值
  • 如果sku中的products_options不为空并且products中为空,则返回products_options
  • 的值

这样的事情在MySQL中是否可能?

1 个答案:

答案 0 :(得分:1)

您可以尝试coalesce()这样的功能:

select coalesce(p1.sku,p2.sku) as sku
from(
    (select id,sku from products_option) as p1
    inner join
    (select id,sku from products) as p2
    on p1.id = p2.id
)