私は2つのmysqlテーブルを持っています
テーブル 1 は「qualitaet-inventar」であり、AUTO_INCREMENT として「sachnummer」を含む 3000 行があります
テーブル 2 は「qualitaet」で、いくつかの行があります。ここでは「id」が AUTO_INCREMENT に設定されています。重要なことは、「sachnummer」が何度も存在できることです。(写真の赤いマークを参照)
私がやりたいのは、「qualitaet」から「qualitaet-inventar」への左結合です
「qualitaet」で「作成」の最新の日付を表示して、すべての「sachnummer」をグループ化したい
「sachnummer」が「qualitaet」で利用できない場合は、「qualitaet-inventar」に空の結合を行います
だから私はこのコードを持っています
SELECT
i.`sachnummer` AS id,
MAX(q.`created`) AS letztemessung,
i.`sachnummer-name` AS sachnummer
FROM
`qualitaet-inventar` i
LEFT JOIN
`qualitaet` q on i.`sachnummer` = q.`sachnummer`
GROUP BY
sachnummer
ORDER BY
sachnummer ASC
問題は、この結果を得るのに長い時間がかかることです
このコードを使用すると、より高速に動作します
SELECT
q.`sachnummer` AS id,
MAX(q.`created`) AS letztemessung,
i.`sachnummer-name` AS sachnummer
FROM
qualitaet q
LEFT JOIN
`qualitaet-inventar` i on q.`sachnummer` = i.`sachnummer`
GROUP BY
sachnummer
ORDER BY
sachnummer ASC
しかし、私はこのコードで穴の在庫と空の日付を取得しません
高いテーブル行でこのテーブルをより高速に取得することは可能ですか? :D
編集:
ここに私のインデックスがあります