2016-03-22 85 views
-1

我有這些表的關係N:M:查詢許多一對多的關係表

1) NEW 
ID_NEW, TITLE_NEW, SUBTITLE_NEW, CONTENT_NEW, CREATED_NEW, IMAGE_NEW, USER_ID 

2) TAG 
ID_TAG, NAME_TAG 

3) NEW_has_TAG 
NEW_ID, TAG_ID 

我想找到一個查詢,看起來特定標籤,例如標籤,該標籤是'足球'。在如果它開創的東西,用新的(一個或多個),標題的ID列表等。這種情況下,

回答

1

這是基本的SQL與聯接:

SELECT 
    t.*, n.* 
FROM 
    tag t 
    LEFT JOIN new_has_tag nt ON t.id_tag = nt.id_tag 
    LEFT JOIN `new` n ON nt.new_id = n.id_new 
WHERE 
    t.name_tag = 'football' 

其實NEW是SQL保留關鍵字標準(MySQL也遵循這個標準),所以你可能有一個名爲`new`的反斜槓而不是new

如果您啓用了ANSI SQL mode,那麼"new"也將是標識符的有效名稱。

+1

這個雙引號會起作用麼,還是你需要在'new'附近單獨打勾? –

+0

如果啓用ANSI SQL模式,則可以使用10個雙引號。謝謝你的補充,我已經改變它反引號,因爲這主要是這種情況。 –

+0

非常感謝! 它使用單引號,沒有它們,至少在MySQL中:) – Kaaerreeene