仅当字段大于零时才加入

时间:2013-06-15 11:30:28

标签: sql database join

如果houses.owner_id大于零,我可以以某种方式加入人,而不是进行2次查询吗?

SELECT * FROM houses 
INNER JOIN persons ON persons.id = houses.owner_id 
WHERE houses.id = id

5 个答案:

答案 0 :(得分:1)

尝试:

SELECT * FROM houses 
INNER JOIN persons ON persons.id = houses.owner_id 
WHERE houses.id = id AND houses.owner_id > 0

不确定为什么owner_id会小于0?也许数据库设计不好。此外,SELECT *被视为不良做法,请尝试明确说明您的列。

答案 1 :(得分:1)

将条件移动到连接条件:

SELECT * FROM houses 
JOIN persons ON persons.id = houses.owner_id 
    AND houses.owner_id > 0
WHERE houses.id = id

只有owner_id>才能加入0


这个查询有点奇怪,因为你没有使用连接的数据。

答案 2 :(得分:0)

为什么不将它作为where条件传递?

SELECT * FROM houses 
INNER JOIN persons ON persons.id = houses.owner_id 
WHERE houses.id = id AND houses.owner_id > 0

答案 3 :(得分:0)

你必须使用house的数量.owner_id> 0.需要拥有和分组条款。此外,这不是一个好的SQL设计。

答案 4 :(得分:0)

其他答案可能就是您想要的,但是,为了完整起见,您可能需要调整JOIN子句:

SELECT * FROM houses 
INNER JOIN persons ON persons.id = houses.owner_id AND houses.owner_id > 0
WHERE houses.id = id