SQL ISNULL,但如果不存在,也需要结果



我正在尝试编写一个查询以从数据库中导出产品。到目前为止,如果"extrafields"中的某个字段为空或有内容,我可以让它提取记录,但如果"extra fields"数据库中不存在数据,我不知道如何将其包括在内。如果有人能提供任何帮助,我将不胜感激,以下是我目前所掌握的信息。

SELECT 
 p.code as `SKU`,
 case when ISNULL (e.content) THEN p.name ELSE CONCAT(p.name,'-',e.content) END as `ItemTitle`,
 p.scLevel as `AvailableQuantity`,
 p.price1 as `RetailPrice`,
 '' as `Description`
 FROM  jss_products p
 INNER JOIN jss_extrafields_values e ON e.productID = p.productID

您可以使用左联接:

SELECT 
 p.code as `SKU`,
 case when ISNULL (e.content) THEN p.name ELSE CONCAT(p.name,'-',e.content) END as `ItemTitle`,
 p.scLevel as `AvailableQuantity`,
 p.price1 as `RetailPrice`,
 '' as `Description`
 FROM  jss_products p
 LEFT JOIN jss_extrafields_values e ON e.productID = p.productID

有了这个,如果它们不在第一个表中,你将有空值作为p.productID,所以你可以用过滤它们(如果你愿意的话)

....where p.productid is null

最新更新