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 위대하고 모든하지만 난 각 테이블과 테이블이 성장할 것 같이 필드가 필요합니다 같은
토마스
는내 쿼리는 지금까지 보인다. :/
내 테이블 레이아웃 : 난 당신이 또한 의견의 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)
답장을 보내 주셔서 감사합니다. Matt. 문제는 각 주석 또는 태그에 프런트 엔드에서 사용할 수있는 여러 열/필드가 있다는 것입니다. 그래서 쉼표로 구분 된 문자열 쉼표는 필연적으로 수정 사항이 아닙니다. 폭발의 붐에 들어가기를 원하지 않는 한. –