原语句
select ct.name from
(ch_flatmod as a left join ch_flat as b on a.HOUSE_ID_NEW=b.HOUSE_ID)
left join ct_house_use ct on b.house_use=ct.code
where
ct.name is null or ct.name=""
现在,我要添加排除ch_flat中HOUSE_NUMBER(int类型)不等于9999的项目
我试着以下两个方式均不正确
select ct.name from
(ch_flatmod as a left join ch_flat as b on a.HOUSE_ID_NEW=b.HOUSE_ID and b.HOUSE_NUMBER != 9999)
left join ct_house_use ct on b.house_use=ct.code
where
ct.name is null or ct.name=""
select ct.name from
(ch_flatmod as a left join ch_flat as b on a.HOUSE_ID_NEW=b.HOUSE_ID)
left join ct_house_use ct on b.house_use=ct.code
where
ct.name is null or ct.name="" and b.HOUSE_NUMBER != 9999
求如何改写,谢谢
------解决方案--------------------
请问LZ提供的SQL语句是什么数据库的语句?
看语法应该不是SQL Server的.
------解决方案--------------------
试试:
SELECT ct.name
FROM ( ch_flatmod AS a
LEFT JOIN ( SELECT *
FROM ch_flat
WHERE HOUSE_NUMBER <> 9999
) AS b ON a.HOUSE_ID_NEW = b.HOUSE_ID
)
LEFT JOIN ct_house_use ct ON b.house_use = ct.code
WHERE ct.name IS NULL
OR ct.name = ""