我正在尝试使用WHERE
子句在3个表中创建JOIN,但是我收到错误:
''''附近的语法不正确。
我不知道我错了什么?
这是我的陈述:
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
答案 0 :(得分:3)
删除=
子句中的WHERE
...
WHERE (CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0) OR ...
根据文件:CHARINDEXMSDN Doc
CHARINDEX
- 在表达式中搜索另一个表达式,如果找到则返回其起始位置。
这已经是一个布尔表达式:
(CHARINDEX('t', TBL_CS_LINKS.LINK_URL) > 0)
因此您的WHERE
子句不需要=
签名。
答案 1 :(得分:1)
您在WHERE
子句后面缺少表达式,以将其与(CHARINDEX('t', TBL_CS_LINKS.LINK_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
答案 2 :(得分:1)
WHERE =
是你的问题。只需将其更改为WHERE