我正在尝试将客户偏好与房屋/公寓相匹配。我在下面尝试了以下查询,但它似乎拒绝它,任何想法为什么?
select b.*
from propertyforrent b, client a
where a.fname = 'John'
having a.preftype = b.type and a.maxrent <= b.rent;
答案 0 :(得分:1)
使用:
select b.*
from propertyforrent b
join client a
on a.preftype = b.type
where a.fname = 'John'
and a.maxrent <= b.rent
HAVING子句用于比较聚合值。
&#34; a.preftype = b.type&#34;是一个连接条件(使用连接子句)
&#34; a.maxrent&lt; = b.rent&#34;是水平比较(不是聚合/垂直比较)
答案 1 :(得分:0)
当您还使用having
(使用汇总查询)时,您应该只使用group by
。也许你正在寻找更像这样的东西:
select b.*
from propertyforrent b
join client a on a.preftype = b.type and a.maxrent <= b.rent
where a.fname = 'John'
答案 2 :(得分:0)
having
之后使用 group by
,请参阅MySQL - SELECT Syntax。
这里有两个表propertyforrent
和client
之间的隐式连接。你可以说
select b.*
from propertyforrent b, client a
where a.fname = 'John' and a.preftype = b.type and a.maxrent <= b.rent;
或使用明确的join
select b.*
from propertyforrent b
join client a on a.preftype = b.type
where a.fname = 'John' and and a.maxrent <= b.rent;