這是搜索分貝十足的產品的查詢和SQL是建立在依賴於用戶搜索什麼飛。
SELECT *
FROM gifts
LEFT JOIN tags_gifts ON tags_gifts.gift_id = gifts.gift_id
LEFT JOIN tags ON tags.id = tags_gifts.tag_id
WHERE published = '1'
AND ((tags_gifts.tag_id = '887'))
GROUP BY gifts.gift_id
ORDER BY COUNT(*) DESC , gift_popularity DESC
這是按計劃工作,但我正在努力的下一部分我正在努力。
我有另一個表「tags_gifts_occasion_specific」,其具有的「gift_id」和「TAG_ID」
基本上如果用戶搜索像上面但沒有TAG_ID搜索列或他們搜索的tag_id與tags_gifts_occasion_specific.tag_id中的tag_id不匹配,我想排除這些結果。
我需要在這個內部做另一個選擇語句來實現這個嗎?希望這是有道理
你能澄清你的問題嗎? tags_gifts_occasion_specific的用途是什麼? –
對不起 - 該表格用於存儲gift_id,只有在用於查找它們的標籤與搜索到的標籤相匹配時纔會出現在搜索結果中。例如。如果有人搜索但沒有輸入標籤(關鍵字),那麼產品將不會出現。但是,如果他們搜索與標籤匹配的「母親節」,則會顯示這些項目。這允許與特殊日子有關的產品在通用搜索中被忽略,例如「紅色」。搜索'紅'的用戶不會看到任何「母親節」的禮物,即使他們也匹配'紅' –
是否有另一種搜索方式(除了tag_id)? –