MYSQL连接3个表,其中一个是链接表
你可能会认为这很容易找到,但经过大量的搜索,我找不到一个合适的例子,可能是因为我使用了错误的关键字进行搜索。我确实意识到这是非常基本的,但我尝试了太多的变化,我就是不明白,我看到的很多例子都有a.tablename和b.tablename,这让人很困惑,虽然我确实打算进一步阅读MYSQL,因为我只知道一些基本知识,但我只是想摆脱困境,这样我现在就可以让我当前的代码正常工作 下面是我的SQL连接,它严重失败:MYSQL连接3个表,其中一个是链接表,mysql,join,inner-join,Mysql,Join,Inner Join,你可能会认为这很容易找到,但经过大量的搜索,我找不到一个合适的例子,可能是因为我使用了错误的关键字进行搜索。我确实意识到这是非常基本的,但我尝试了太多的变化,我就是不明白,我看到的很多例子都有a.tablename和b.tablename,这让人很困惑,虽然我确实打算进一步阅读MYSQL,因为我只知道一些基本知识,但我只是想摆脱困境,这样我现在就可以让我当前的代码正常工作 下面是我的SQL连接,它严重失败: SELECT faq.faq_title FROM faq, category INNE
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
基本上我有三张桌子
faq table
---------
faq_id
faq_title
category table
---------
category_id
category_name
faq_link_category
---------
faq_id
category_id
每个FAQ都可以有多个相关类别,因此我将其设置为基本上可以搜索以下内容:
显示类别为6的所有常见问题解答标题
但是我得到的结果是500个,而不是4个或5个
简言之,我来到了一个页面,上面写着这样的东西
index.php?=6
因此,我想找到该类别的所有常见问题解答,其中category_id=x在我的示例中正好是6。您需要的是外部联接:
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
试试这个:
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
谢谢,c、f和flc代表什么?欢迎您参考。它们只是一个别名,可以使键入变得更短,从而更容易和更不容易出错。