私は3つのテーブル:Order
,Payment
およびUser
を持っています。MYSQL:特定のデータフィールドを持つユーザーのみを取得します
特定のお支払い方法(現金)を使用し、他のお支払い方法を使用していないユーザーのみを探しています。
は私が構築された単純なクエリは次のようになります。彼らは、少なくとも一回のお支払い方法として現金を使用した場合
select
user.id,
user.fname,
user.lname,
user.email
from `order` as o
inner join payments on o.id = payments.order_id
inner join user on o.user_id = user.id
where o.orderplaced_ts > "2016-08-01 00:00:00"
and o.store_id = 6
and o.order_status != "Cancelled"
and payments.payment_method = "Cash"
group by user.id
はしかし、これは時間枠の間に、ユーザーが返されます。現金のみに限定するにはどうすればいいですか?
それぞれのお支払い方法に複数のサブクエリを使用する必要がありますか?各リターンと他を比較して、より多くのユーザーを排除する必要がありますか?
また、http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very- simple-sql-query – Strawberry
@Strawberry - 私はあなたの提案を感謝しますが、私は私に対処している手を扱います。 – Bardworx
これは1回限りのクエリですか、それとも頻繁に実行されますか? – 2bigpigs