次のテーブルがあるとします。
items table
item_id|view_count
item_views table
view_id|item_id|ip_address|last_view
私がやりたいことは次のとおりです。特定のip_addressによる特定のitem_idを持つアイテムの最後のビューが1時間以上前だった場合、アイテムテーブルのアイテムのview_countを増やしたいと思います。その結果、アイテムのビュー数を取得します。通常の方法:
q = SELECT count(*) FROM item_views WHERE item_id='item_id' AND ip_address='some_ip' AND last_view < current_time-60*60
if(q==1) then q = UPDATE items SET view_count = view_count+1 WHERE item_id='item_id'
//and finally get view_count of item
q = SELECT view_count FROM items WHERE item_id='item_id'
ここでは、3 つの SQL クエリを使用しました。1 つの SQL クエリにマージするにはどうすればよいですか? そして、それは処理時間にどのように影響しますか? 以前の方法よりも速くなったり遅くなったりしますか?