2014-03-25 87 views
0

你會認爲這將很容易找到,但經過大量的搜索後,我找不到一個適合的例子,可能是因爲即時通訊使用錯誤的關鍵字搜索。我意識到這是非常基本的,但我已經嘗試了這麼多的變化,我只是無法得到它,並且很多我看到的例子都有a.tablename和b.tablename,這只是令人困惑,而我確實想要閱讀MYSQL進一步,因爲我只是知道基礎知識即時只是想擺脫一個漏洞,所以我可以得到我目前的代碼工作。MYSQL加入3個表,其中一個是鏈接表

這裏是我的SQL加入的悲慘失敗:

SELECT faq.faq_title 
FROM faq, category 
INNER JOIN faq_link_category ON faq_link_category.category_id = category.category_id 
WHERE faq_link_category.category_id =6 

基本上我有3個表

faq table 
--------- 
faq_id 
faq_title 

category table 
--------- 
category_id 
category_name 

faq_link_category 
--------- 
faq_id 
category_id 

請告訴我發生的事情是每一個常見問題可以有多個相關的1類,所以我將它設置這樣一來,我就可以基本上做到上的線路搜索的東西:

顯示我的所有常見問題職稱,其中類別= 6

但即時得到像500個結果,而不是4或5

總之IM到達的頁面上有這樣的事情 的index.php?= 6

所以我想找到所有的常見問題解答該類別的category_id = x,在我的例子中恰好是6。

回答

2

你需要的是一個外部聯接:

SELECT faq_title 
FROM faq f 
JOIN faq_link_category flc 
ON f.faq_id = flc.faq_id 
JOIN category c 
ON flc.category_id = c.category_id 
WHERE flc.category_id = 6 
+0

感謝,僅供參考什麼是C,F,代表 – user1547410

+0

歡迎您FLC。它們只是縮短打字時間的一種方式,因此更容易且不易出錯。 – George

0

試試這個:

SELECT `faq`.`faq_title` 
FROM `faq` 
INNER JOIN `faq_link_category` ON `faq_link_category`.`category_id` = `faq`.`faq_id` 
INNER JOIN `category` ON `faq_link_category`.`category_id` = `category`.`category_id` 
WHERE `faq_link_category`.`category_id` = 6