这是我写的一段 SQL语句 : 目的使用子查询 查询信息 ,可是老报错 ,不知道 这个子查询该怎么用啊??又那个好心人帮我看看啊??
--<2>使用子查询实现
SELECT(
--这里返回多个结果
SELECT DName FROM hos_district WHERE DID IN(
SELECT SDID FROM hos_street WHERE SID IN(
SELECT SID FROM hos_house WHERE UID=(
SELECT UID FROM sys_user WHERE UName='小李'
)
)
)
) 区县,(
SELECT SName FROM hos_street WHERE SID IN(
SELECT SID FROM hos_house WHERE UID=(
SELECT UID FROM sys_user WHERE UName='小李'
)
)
) 街道,HTID 户型,PRICE 价格,TOPIC 标题,CONTENTS 描述,HTIME 时间,COPY 备注
FROM hos_house
WHERE UID=(
SELECT UID FROM sys_user WHERE UName='小李'
)
错误类型:
消息 512,级别 16,状态 1,第 3 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
有谁知道我这个子查询应该怎么改啊 啊?? 在线等。。。。
------解决方案--------------------------------------------------------
WHERE UID=( 这个=号改成IN 试试
------解决方案--------------------------------------------------------
同楼上,应该是 WHERE UID=(这里面返回的结果数不只一条),改成 where uid in (....)
看起来这个SQL可以优化一下
------解决方案--------------------------------------------------------