2
table2の最後のフルーツカウントをtable1のクエリに追加しようとしています。サブクエリ別のテーブルの最後の日付/値
table1 table2
+--------+--------+-------+-----+ +--------+------+-------+
| fruit | season | carbs | fat | | fruit | date | count |
+--------+------+---------+-----+ +--------+------+-------+
| apple | summer | 21 | 0 | | apple | 2015 | 700 |
| banana | all yr | 27 | 0 | | apple | 2014 | 500 |
+--------+--------+-------+-----+ | banana | 2014 | 200 |
| banana | 2013 | 300 |
+--------+------+-------+
goal:
+--------+--------+-------+-----+------------+
| fruit | season | carbs | fat | last_count |
+--------+------+---------+-----+------------+
| apple | summer | 21 | 0 | 700 |
| banana | all yr | 27 | 0 | 200 |
+--------+--------+-------+-----+------------+
私が思い付くことができますすべてがこのような何か(動作しない)である。また、
SELECT t1.*, t2.count AS last_count FROM table1 AS t1
INNER JOIN
(SELECT fruit, count FROM table2 ORDER BY date DESC) t2 ON t1.fruit = t2.fruit
、私はTABLE1(例えばWHERE t1.carbs < 25
)からの値に基づいて結果をフィルタリングすることができるはず
Thanks Tim。それは私が必要とするものを正確に行います。しかし、クエリの実行にはかなりの時間がかかりますので、2つの別々のクエリを使用することがあります。 – gipadm
@gipadm結合に関連する列にインデックスを設定しましたか(つまり、「果物」と「日付」)?これにより、クエリの速度が飛躍的に向上します。 –
日付と果物は、table2で索引付けされました。私は今table1の果物を索引しました。それは少し速く走ります。 – gipadm