2

2 つのクエリを作成する代わりに、houses.owner_id が 0 より大きい場合、どうにかして人に参加できますか?

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

5 に答える 5

2

条件を結合の条件に移動します。

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

これは、owner_id > 0 の場合にのみ参加します。


結合されたデータを使用していないため、このクエリは少し奇妙です。

于 2013-06-15T13:20:27.403 に答える
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 *、悪い習慣と見なされます。列を明示的に記述してください。

于 2013-06-15T11:33:22.887 に答える
0

count of house.owner_id > 0 を使用する必要があります。group by 句が必要です。また、これは適切な SQL 設計ではありません。

于 2013-06-15T13:03:29.020 に答える
0

where条件として渡してみませんか?

SELECT * FROM houses 
INNER JOIN persons ON persons.id = houses.owner_id 
WHERE houses.id = id AND houses.owner_id > 0
于 2013-06-15T11:34:27.797 に答える
0

他の答えはおそらくあなたが望むものですが、完全を期すために、JOIN句を調整することをお勧めします。

SELECT * FROM houses 
INNER JOIN persons ON persons.id = houses.owner_id AND houses.owner_id > 0
WHERE houses.id = id
于 2013-06-15T13:15:30.510 に答える