加入以下两个表的最佳方式?

时间:2014-03-26 20:03:31

标签: mysql sql database database-design

好的,我有2张桌子,

url_table

id  
link_url

标记表

id
link_tags 

我想加入他们,创建像

这样的视图或表格
id ,link_tag1, link_tag2, link_tag3.....

示例数据:url_table

[1 | w3schools.com] 
[2 | php.net]

sample_data:tag_table:

[1 | html]
[1 | javascript]
[2 | php]

必填表

[1 | html,javascript]
[2 | php]

如果不使用太多查询,我最好能做到这一点吗?

3 个答案:

答案 0 :(得分:1)

您可以使用MySQL的GROUP_CONCAT()功能:

SELECT u.url
      ,GROUP_CONCAT(t.tag)
FROM url_table u
JOIN tag_table t
 ON u.id = t.id
GROUP BY u.url

注意:在示例中,JOIN并未真正添加任何内容ID,而tag只能来自tag_table,但我将其包含在内假设不仅仅是样本。

答案 1 :(得分:1)

Select id, group_concat(`Link_Tag` separator ',') as mTags
FROM tag_table
Group by ID

由于您的结果并未真正呈现网址,因此无需加入。一切都可以直接在tag_table上完成。

答案 2 :(得分:0)

使用此功能:

    Select a.id,b.link_tag1,b.link_tag2,b.link_tag3 from url_table a
    inner join tag_table b
    on a.id= b.id
 -- where {clause here}
;