Sql 左连接3个表where子句语法不正确
我试图使用Sql 左连接3个表where子句语法不正确,sql,sql-server-2008,Sql,Sql Server 2008,我试图使用WHERE子句跨3个表创建联接,但出现错误: '靠近'=''的语法不正确 我不知道我做错了什么 我的声明如下: select TBL_CS_PROJECT.NAME , TBL_CS_LINKS.LINK_URL , TBL_CS_CLICKS.CLICK_COUNT from TBL_CS_PROJECT left join TBL_CS_LINKS on TBL_CS_PROJECT.PROJECT_ID = TBL_CS_LIN
WHERE
子句跨3个表创建联接,但出现错误:
'靠近'=''的语法不正确
我不知道我做错了什么
我的声明如下:
select
TBL_CS_PROJECT.NAME ,
TBL_CS_LINKS.LINK_URL ,
TBL_CS_CLICKS.CLICK_COUNT
from
TBL_CS_PROJECT
left join
TBL_CS_LINKS on TBL_CS_PROJECT.PROJECT_ID = TBL_CS_LINKS.PROJECT_ID
right join
TBL_CS_CLICKS on TBL_CS_LINKS.LINK_ID = TBL_CS_CLICKS.LINK_ID
WHERE = (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0)
OR (CHARINDEX('t', TBL_CS_PROJECT.NAME) > 0)
order by
TBL_CS_PROJECT.NAME
您缺少
WHERE
子句后面的表达式以将其与表达式(CHARINDEX('t',TBL\u CS\u LINKS.LINK\u URL)>0)
这就是=
操作符的工作方式:
....
WHERE = (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0)
OR (CHARINDEX('t', TBL_CS_PROJECT.NAME) > 0) order by TBL_CS_PROJECT.NAME
删除=
运算符:
...
WHERE CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0
OR CHARINDEX('t', TBL_CS_PROJECT.NAME) > 0
order by TBL_CS_PROJECT.NAME
您缺少
WHERE
子句后面的表达式以将其与表达式(CHARINDEX('t',TBL\u CS\u LINKS.LINK\u URL)>0)
这就是=
操作符的工作方式:
....
WHERE = (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0)
OR (CHARINDEX('t', TBL_CS_PROJECT.NAME) > 0) order by TBL_CS_PROJECT.NAME
删除=
运算符:
...
WHERE CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0
OR CHARINDEX('t', TBL_CS_PROJECT.NAME) > 0
order by TBL_CS_PROJECT.NAME
删除
WHERE
子句中的=
...
WHERE (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0) OR ...
根据文件:
CHARINDEX
-在表达式中搜索另一个表达式,如果找到,则返回其起始位置
这已经是一个布尔表达式:
(CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0)
因此您的
WHERE
子句不需要=
符号。在WHERE
子句中删除=
...
WHERE (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0) OR ...
根据文件:
CHARINDEX
-在表达式中搜索另一个表达式,如果找到,则返回其起始位置
这已经是一个布尔表达式:
(CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0)
因此您的
WHERE
子句不需要=
符号。WHERE=
是您的问题。只要把它改成WHERE
WHERE=
就是你的问题。只需将其更改为WHERE