MYSQL 結合と最新データ取得のselect文
条件指定し、テーブル結合、最新データの取得(最新日付がなければ、一番近い日付データを取得)
select idlist.id, idlist.name, sales.data, sales.price from idlist A join sales B on B.id = A.id where A.taxfree = 1 -- ここまでは単なるjoin and not exists ( select * from sales -- グルーピングに用いるキー属性は'='で…(a) where id = B.id -- それ以外は同一キーを排除できる何らかの条件を指定…(b) and data > B.data )
ここでBのキー属性がもっと多い場合など、グルーピングの単位を変更する必要があるならば(a)にその属性を追加すればよいし、(b)は同一値を排除できればよいので、’>’でも’<'でも、あるいは必要に応じてその他の条件に変更可能。 「属性Xが最大のもののうち属性Yが最小のもの」などという複合条件でも同じ考え方で容易に応用できる。