0
我有一个内容表,可以有不同的评论和标签结果长度与每行相关联。我不确定如何一次性获取所有这些内容的信息。加入具有不同长度的评论和标签的内容项目:D
我可以很容易地做一个查询来获取内容信息(id)和查询每个表的注释和标签,但是这似乎没有多少意义,如果有更好的方法。
任何提示或建议? 在此先感谢!
托马斯
我的查询到目前为止是这样的:
SELECT c.*, GROUP_CONCAT(tagWords.tagWord SEPARATOR ', ') AS tags FROM platform.contents c
LEFT OUTER JOIN platform.contentTags ON contentTags.contentId = c.contentId
LEFT OUTER JOIN platform.tagWords ON contentTags.tagId = tagWords.tagId
WHERE c.contentType = 'album' LIMIT 10
GROUP_CONCAT是伟大的,所有的,但我需要的字段从每个表和表将增长。 :/
我的表格布局:
mysql> explain contentComments;
+--------------+---------------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------------+------+-----+-------------------+-------+
| contentId | bigint(19) unsigned | NO | MUL | NULL | |
| userId | bigint(19) unsigned | NO | | NULL | |
| message | varchar(255) | YES | | NULL | |
| stampCreated | timestamp | NO | | CURRENT_TIMESTAMP | |
+--------------+---------------------+------+-----+-------------------+-------+
4 rows in set (0.00 sec)
mysql> explain contentTags;
+-----------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------+------+-----+---------+-------+
| contentId | bigint(20) | NO | MUL | NULL | |
| tagId | bigint(20) | YES | | NULL | |
+-----------+------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> explain contents;
+------------------+-----------------------------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-----------------------------------------+------+-----+-------------------+----------------+
| contentId | bigint(20) | NO | PRI | NULL | auto_increment |
| contentType | enum('video','album','blogpost','news') | NO | | NULL | |
| userId | bigint(19) unsigned | NO | MUL | NULL | |
| contentTitle | varchar(45) | YES | | NULL | |
| contentDesc | varchar(255) | YES | | NULL | |
+------------------+-----------------------------------------+------+-----+-------------------+----------------+
mysql> explain tagWords;
+---------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+----------------+
| tagId | bigint(19) unsigned | NO | PRI | NULL | auto_increment |
| tagWord | varchar(45) | YES | | NULL | |
+---------+---------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
感谢您的回复。 我的问题是,每个评论或标签都有多个需要在前端提供的列/字段。所以,一个字符串逗号分隔不一定是一个修复..除非我想进入爆炸的buch。 – 2010-12-15 16:48:12