2017-10-12 110 views
-1

我有以下表格:我怎樣才能返回結果?

標籤:

| id | title | 

:因爲我們正在重新使用

| tag_id (FK tags.id) | category_tag_id (FK tags.id) | 

category_tag_id引用tags.id標籤表(我們可以一類簡單地分配給標籤與此表

文章

| id | title | body | etc... | 

articles_tags

| article_id (FK articles.id) | tag_id (FK tags.id) | 

我試圖創造出選擇關聯到這個技能的所有類別中查詢。我們通過搜索是在articles_tags錶鏈接標籤搶類別,那麼我們只需要檢查被檢查類別表相關聯的那些標籤哪些類別。

這裏是我試過

select tags.* 
FROM tags 
INNER JOIN categories ON tags.id = categories.tag_id 
INNER JOIN article_tags ON article_tags.article_id = ID_OF_ARTICLE_WE_WANT_CATEGORIES_FROM 

我也嘗試添加一個

where article_id = ID_OF_ARTICLE_WE_WANT_CATEGORIES_FROM 

然而,這似乎查詢返回相關的技能的所有類別,而不僅僅是那些。

+0

見https://meta.stackoverflow.com/questions/333952/爲什麼-應該-I-提供-AN-MCVE換什麼,似乎對我將要-A-極簡單的SQL查詢 – Strawberry

回答

0
select tags.* 
FROM tags 
INNER JOIN categories ON tags.id = categories.tag_id 
INNER JOIN article_tags ON article_tags.article_id = ID_OF_ARTICLE_WE_WANT_CATEGORIES_FROM 

在您的查詢中,表article_tags實際上並未加入其他任何內容。看着你所提供的模式,似乎article_tags通過與tagsarticle_tags.tag_id - >tags.id

嘗試此查詢:

SELECT tags.* 
FROM tags 
INNER JOIN categories ON tags.id = categories.tag_id 
INNER JOIN article_tags ON article_tags.article_id = tags.id 
WHERE article_tags.article_id = :user_input 
相關問題