長時間偵聽器,第一次調用者。 我一直在研究這個問題幾個小時了,一直無法找到我的具體問題的答案。在mysql中獲取所選項目的相關項目
我有相關的產品數據庫的三個表:
- tbl_item(與
item_id
,item_name
,等...) - 基本項目表 - tbl_item_term(與
term_id
和term_name
) - 描述性術語 - tbl_item_term_map(與
item_id
和term_id
) - 分配的術語項
每個項目都有多個與它們相關的術語。我想要做的是根據他們的條款顯示與正在查看的項目相關的所有項目。
例如:
item1 has term1, term2, term3 assigned to it<br>
item2 has term2, term4, term6 assigned to it<br>
item3 has term4, term5, term6 assigned to it
在每件商品頁面,我想展示相關產品。在這種情況下,item3將顯示item2作爲相關產品,因爲它共享term4。
我發現了一些有用的回答左加入三表問題,但沒有什麼符合這種特殊情況。提前致謝!
克里斯
編輯
這裏是Sajuna提供的代碼剪斷,修改,以反映我的表/字段名:
SELECT ti.item_name FROM tbl_item ti
INNER JOIN tbl_item_term_map ttm on ttm.item_id = ti.item_id
INNER JOIN tbl_item_term tt on tt.term_id = ttm.term_id
WHERE tt.term_id IN (
SELECT tt.term_name FROM tbl_item ti
INNER JOIN tbl_item_term_map ttm on ttm.item_id = ti.item_id
INNER JOIN tbl_item_term tt on tt.term_id = ttm.term_id
WHERE ti.item_id = 2536;
);
當我跑得嵌套查詢,它按預期方式返回分配給該ID的五個字段。但是當我運行整個事情時,我得到一個錯誤(#1064 - 你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本的手冊,在第9行附近使用正確的語法)。這是什麼意思是「不適合生產」?
如果您發佈了您的表結構,它會更容易幫助 –