查询多对多关系表

时间:2016-03-22 21:07:03

标签: mysql sql join

我的这些表格的关系是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

我想查找一个查找特定标记的查询,例如标记为' football'。在这种情况下,如果它找到了一些东西,一个带有新标题,标题等的列表

1 个答案:

答案 0 :(得分: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 Standard中的保留关键字(MySQL也遵循此标准),所以你可能有一个名为`new` 的表,带有反引号而不是new

如果您启用了ANSI SQL mode,则"new"也是标识符的有效名称。