2010-07-17 48 views
1

我有兩個表是這樣的:SQL查詢的毗連

TABLE user(
id  CHAR(100) 
text TEXT 
) 

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

我需要一個查詢,爲每個用戶串接該用戶的所有帖子的文本列,並把它們放在用戶的文本列。順序並不重要。 我該怎麼辦?

回答

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, '');