私のMySQLデータベースは、ID、名前、データ、および場所の4つのフィールドを持つテーブル(cfg)を持っています この1つのテーブルは、いくつかのサブドメイン私は特定のサブドメイン(場所)の各名前の最新の行のリストを取得する必要があります。複雑なSQL結合クエリ - 最新の行を取得
例データ
id name data location
---------------------------
1 color red dc
2 color blue dc
3 size large sj
4 color green sj
5 size small dc
次のクエリは正常に動作しますが、それはあまりにも複雑で遅いようです。誰にでも提案はありますか?
SELECT c1.name, c1.data
FROM (SELECT * FROM cfg WHERE location = "dc") as c1
LEFT JOIN (SELECT * FROM cfg WHERE location = "dc") as c2 ON (c1.name = c2.name
AND c1.id < c2.id)
WHERE c2.id IS NULL
それは
name data
--------------
color blue
size small
ありがとうございました。これはトリックでした! – Nathan