使用左连接在 from 子句上添加表
Posted
技术标签:
【中文标题】使用左连接在 from 子句上添加表【英文标题】:add a table on from clause with left join 【发布时间】:2014-08-12 09:19:09 【问题描述】:你好,请和我一起检查这个 sql 查询
SELECT
CAISSE.*
,IIf(USERS.USR_NOM_L IS NULL,CAISSE.USR_L, USERS.USR_NOM_L + ' ' + USERS.USR_PREN_L) AS CLIENT_L
,IIf(SOCIETE.SOC_ID = 0 ,CAISSE.SOC_L,SOCIETE.REF_L) AS SOC_REF_L
FROM
( CAISSE
LEFT JOIN USERS ON CAISSE.USR_ID = USERS.USR_ID
)
LEFT JOIN SOCIETE ON CAISSE.SOC_ID = SOCIETE.SOC_ID
WHERE
1=1 ;
我需要添加“and where SOCIETE.SITE='SiteName'
”
但这不起作用,因为我还没有在FROM
子句中选择SOCIETE
表。我该怎么做?
【问题讨论】:
您是否有错误消息,或者确切的问题是什么? @Strawberry 是 SQL Server 中使用的函数。该问题很可能被标记为错误。 Salah,你使用的是什么 DBMS? 我正在使用微软访问 问题是当我在左连接中添加条件时,我有“不支持表达式连接” 当您有超过 1 个连接时,每个连接都需要括号。 ***.com/questions/7854969/sql-multiple-join-statement .. 我不明白WHERE 1=1
?这是有目的的吗?
【参考方案1】:
我找到了解决问题的方法,谢谢大家
SELECT * FROM (SELECT CAISSE.*,IIf(USERS.USR_NOM_L IS NULL,CAISSE.USR_L,
USERS.USR_NOM_L + ' ' + USERS.USR_PREN_L) AS CLIENT_L,
IIf(SOCIETE.SOC_ID = 0 ,CAISSE.SOC_L,SOCIETE.REF_L) AS SOC_REF_L,SOCIETE.SITE
FROM (CAISSE LEFT JOIN USERS ON CAISSE.USR_ID = USERS.USR_ID)
LEFT JOIN SOCIETE ON CAISSE.SOC_ID = SOCIETE.SOC_ID)
WHERE SOCIETE.SITE='SiteName';
【讨论】:
以上是关于使用左连接在 from 子句上添加表的主要内容,如果未能解决你的问题,请参考以下文章