Sql 即使有一个条件为false,也要获取一个值
以下是我的实际问题:Sql 即使有一个条件为false,也要获取一个值,sql,where,exists,Sql,Where,Exists,以下是我的实际问题: SELECT temp.id_company AS id_company , temp.code_product AS id_product , temp.date_product AS date_p FROM ( SELECT * FROM companies INNER JOIN products ON products.id_company_product = companies.id_company WHE
SELECT temp.id_company AS id_company
, temp.code_product AS id_product
, temp.date_product AS date_p
FROM (
SELECT *
FROM companies
INNER JOIN products
ON products.id_company_product = companies.id_company
WHERE module_key_company = "daL/RqzZcfqc."
) AS temp
WHERE temp.code_product = "app_12"
首先,我得到companys.id\u company where companys.module\u key\u company
匹配“dal…”,然后我检查是否得到products.code\u product=“app\u 12”
和products.id\u company=companys.id\u company
的匹配
如果这两个条件都成立,我就会得到我想要的。但是如果没有与产品相匹配的companys.id\u company.code\u product
,我还想获得companys.id\u company
即使code\u产品
错误,我也无法找到仅使用module\u键
测试才能获得公司id的方法
谢谢您的帮助。很难说清楚您的表结构是什么,除非您用表名作为列名的后缀。这就是我的猜测。试试这个:
SELECT C.id_company, P.code_product, P.date_product
FROM Companies AS C
LEFT OUTER JOIN Products AS P ON P.id_company_product = C.id_company
WHERE module_key_company = 'daL/RqzZcfqc.'
AND (P.code_product = 'app_12' OR P.code_product is NULL)
最好的,
乔试试这个:
SELECT C.id_company, P.code_product, P.date_product
FROM Companies AS C
LEFT OUTER JOIN Products AS P ON P.id_company_product = C.id_company
WHERE module_key_company = 'daL/RqzZcfqc.'
AND (P.code_product = 'app_12' OR P.code_product is NULL)
SELECT companies.id_company
, coalese(products.code_product,'NONE') as id_product
, products.date_product as date_p
FROM companies
LEFT OUTER JOIN products
ON products.id_company_product = companies.id_company
and products.code_product = 'app_12'
WHERE companies.module_key_company = 'daL/RqzZcfqc.'
对于没有任何匹配产品的公司,
id\u product
列将包含文本NONE,date\u p
列将null。此外,您应该使用单引号来提供字符常量,而不是双引号。听起来好像您需要左或右外部联接,这样,Companys表中在Products中缺少匹配项的行仍将被输出。我不明白…您的意思是只使用两个条件进行一次选择,但只使用左连接而不是内部连接?有关外部连接,请参见此。本质上,即使不能满足连接的ON条件,其中一个表仍将有其所有信息输出,而输出的某些行可能包含不匹配条件的空值。好的,我想我得到了它,它对我不起作用。因为我确信我会在模块上找到匹配的密钥,从而得到一个公司的id。但在某些情况下,我将无法获得与got id_公司上的code_产品匹配的代码。很抱歉,如果我暴露得很严重,我需要睡眠…好吧,它工作得很好,我不知道有可能把这种情况放在ON条款中…非常感谢。