如果houses.owner_id大于零,我可以以某种方式加入人,而不是进行2次查询吗?
SELECT * FROM houses
INNER JOIN persons ON persons.id = houses.owner_id
WHERE houses.id = id
答案 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