SQL Concat查询

时间:2010-07-17 19:51:27

标签: sql mysql

我有两张这样的表:

TABLE user(
id     CHAR(100)
text   TEXT
)

TABLE post(
postid     CHAR(100)
postedby   CHAR(100)
text       TEXT
FOREIGN KEY (postedby) references user
);

我需要一个查询,为每个用户连接该用户的所有帖子的TEXT列,并将它们放在用户的文本列中。订单并不重要。 我该怎么办?

1 个答案:

答案 0 :(得分:2)

要选择值,请使用GROUP_CONCAT

SELECT postedby, GROUP_CONCAT(text)
FROM post
GROUP BY postedby

要更新原始表格,您需要使用多表格update将此结果与原始表格结合使用。

UPDATE user
LEFT JOIN
(
    SELECT postedby, GROUP_CONCAT(text) AS text
    FROM post
    GROUP BY postedby
) T1
ON user.id = T1.postedby
SET user.text = IFNULL(T1.text, '');