約 300,000 行の製品情報を含むデータベースがあります。重複する UPC (COUNT(upc) > 1) を含む
行を取得する必要があり、結果の説明の少なくとも 1 つが特定の文字列 (たとえば、「Reed」) と一致します。
たとえば、次の行がすべて選択されます (desc、upc のペア)
Deer D7394    62226173
Reed R2536    62226173
Deer D7217    62226173
しかしどれも
Deer D0173    62278389
Deer D7289    62278389
Deer D9272    62278389
ここに私が取り組んでいるクエリがあります:
SELECT a.desc, a.upc, a.sku, a.short_description 
FROM inventory a 
JOIN 
    (SELECT upc, desc 
    FROM inventory 
    GROUP BY upc 
    HAVING COUNT(upc) > 1) b 
ON a.upc = b.upc 
WHERE ((a.desc LIKE '%Reed%') OR (b.desc LIKE '%Reed%'))
AND a.upc != '' 
AND a.upc != 0 
ORDER BY upc;
私はMySQLに比較的慣れていませんが、これはうまくいくようです。ただし、一部の結果では一致しない行が返されません (つまり、Reed R2536 は返されますが、Deer D7394 は返されません)。
どんな洞察も大歓迎です!