私は製品検索に使用する検索機能に取り組んでいます。MySQLの通常のクエリと他のクエリとの異なる結果のクエリ
しかし、私がMySQLを使用しようとすると、別の結果が得られます。
tbl_productの表は、私は通常のクエリを使用する場合、それは1件の結果を与える42504
を使用して検索するときに、それは1件の結果を与える必要がありSKU番号pd_art 42504.
を持っている製品を持っている
SELECT *
FROM tbl_product, tbl_suggetions
WHERE
(
(tbl_product.pd_name LIKE '%42504%') OR
(tbl_product.pd_art LIKE '%42504%') OR
(tbl_product.pd_srkw LIKE '%42504%') OR
(tbl_suggetions.sgtexts LIKE '%42504%' AND
tbl_product.pd_id = tbl_suggetions.sgproduct)
) AND pd_bestsell <> 1
GROUP BY pd_id
ORDER BY RAND()
しかし、使用時には
を結果としてそれがその製品を与えるものではありません参加SELECT *
FROM tbl_product tbl_product
JOIN tbl_suggetions tbl_suggetions
ON tbl_suggetions.sgproduct = tbl_product.pd_id
WHERE
(
(tbl_product.pd_name LIKE '%42504%') OR
(tbl_product.pd_art LIKE '%42504%') OR
(tbl_product.pd_srkw LIKE '%42504%') OR
(tbl_suggetions.sgtexts LIKE '%42504%')
) AND pd_bestsell <> 1
GROUP BY pd_id
ORDER BY RAND()
私はこれを修正するのを手伝ってもらえますか?実際には、通常のクエリ実行よりも20倍も速いため、ジョインクエリを使用する必要があります。
tbl_product.pd_name LIKE '%42504%' OR
tbl_product.pd_art LIKE '%42504%' OR
tbl_product.pd_srkw LIKE '%42504%'
私はあなたが切り替わるときと信じています。おかげで、あなたの最初のクエリで多く
2つの非常に異なる結合を実行しています(異なる結果)どちらの結果が欲しいですか? (私は2番目のクエリが正しいと思います。) – jarlh
参加を控えてください。 2番目のテーブルに一致しないものを含む結果が表示されます。それはその特定のpd_artのために参加することはできませんことができるでしょう – James
@ jarlh私は1つの結果が必要です、正しい結果は最初のクエリによって与えます –