このディレクトリの索引

# 出典 :: SQL質疑応答スレ 11問目 #520 # SQLiteを使っています。 # # 顧客A(顧客idは100)さんの最新の購入物を表示したいのですが、 # select 顧客.顧客名, 購入物.顧客名 from 顧客 natural join 購入物 where 顧客id=100 order by 購入日 desc limit 1; # # っていま書いていますが、無駄が多い気がします。 # これを手直していただきたいのですが、よろしくお願いします。 # # 顧客(100,'A'). 購入物(100,'ORACLE Ver3.0','19840331'). 購入物(100,'Prolog-KABA','19841201'). '顧客A(顧客idは100)さんの最新の購入物を表示する'(_id,_顧客名,_最新の購入物) :- 顧客(_id,_顧客名), setof([_購入日,_購入物],[_購入日,_購入物] ^ 購入物(_id,_購入物,_購入日),LL), last(LL,[_,_最新の購入物]). ?- '顧客A(顧客idは100)さんの最新の購入物を表示する'(100,_顧客名,_最新の購入物). _顧客名 = 'A', _最新の購入分 = 'Prolog-KABA'.