SQL 连接查询

标签 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 列,并将它们放在用户的文本列中。顺序并不重要。 我该怎么办?

最佳答案

要选择值,请使用 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, '');

关于SQL 连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273029/

相关文章:

mysql - 如何获得表的最后 10 个数据的排名

php - MySQL Jquery 更新数组?

mysql - 连接 2 个表 SQL -Where 子句 2 行在一张表中

sql - 在 join in sql 中计算

SQL:内部连接和计数不同

php - 在 HasMany 关系上排序 Laravel 5

sql - 加入重叠的日期范围

php - 如何使用 Recyclerview 从 MySQL 获取数据

php - 使用 PHP 从 MYSQL 表生成 Excel

mysql - 自动检查全文索引,如果不存在创建一个?