2

私は2つのテーブルを持っています最初のテーブルには名前、メール、vegetable_Fruits、飲み物が含まれています

CREATE TABLE Likes
(
Name varchar(20),
email varchar(20),
Vegetables_Fruits varchar(20),
Drinks varchar(20)
) 

野菜、果物、飲み物などの名前とメールアドレスを保存しています。野菜が好きな人は、どのような値でもかまいません。テーブルを次のように更新します。

name email 1 0

人が果物が好きなら

name email 2 0

人が飲み物が好きなら

name email 0 1

クエリを挿入

INSERT INTO Likes(Name,email,Vegetables_Fruits,Drinks)
     VALUES("aaa","aaa@example.com",1,0),("bbb","bbb@example.com",2,0),("ccc","cc@example.com",0,1),("ddd","dd@example.com",2,0),("eee","ee@example.com",2,0),("fff","ff@example.com",1,0),("ggg","gg@example.com",0,1),("hhh","hh@example.com",0,1) 

メールのリストを含む別のテーブルがあります

CREATE TABLE emailList
(
Likes_Vegetables varchar(50),
Likes_Fruits varchar(50),
Drinks varchar(50)
)

クエリの挿入

INSERT INTO emailList(Likes_Vegetables,Likes_Fruits,Drinks)
       VALUES("aaa@example.com,ff@example.com","bbb@example.com,dd@example.com,'ee@example.com'","hh@example.com,gg@example.com,cc@example.com")

1番目のテーブル(いいね)の値に基づいて2番目のテーブル(emailList)を更新したいこれに対するクエリは何ですか

4

3 に答える 3

2
update emailList 
set 
Likes_vegetables=(select Group_concat(email) from LIKES where Vegetables_Fruits=1),
Likes_Fruits=(select Group_concat(email) from LIKES where Vegetables_Fruits=2),
Drinks=(select Group_concat(email) from LIKES where Drinks=1)
于 2012-12-14T06:24:04.483 に答える
1

私はあなたが探していたと思いますgroup_concat、多分このようなクエリ

INSERT INTO emailList(Likes_Vegetables,Likes_Fruits,Drinks)
      values ( (SELECT GROUP_CONCAT(email) FROM Likes WHERE Vegetables_Fruits=1) , (SELECT GROUP_CONCAT(email) FROM Likes WHERE Vegetables_Fruits=2) , (SELECT GROUP_CONCAT(email) FROM Likes WHERE Vegetables_Fruits=0) )
于 2012-12-14T05:57:53.987 に答える
-1

これは私が推測するあなたの問題を解決します-

emailListセットを更新Likes_Vegetables=concat(Likes_Vegetables、 "aaa@example.com")、Likes_Fruits = concat(Likes_Fruits、 "ee@example.com")、Drinks = concat(Drinks、 "cc@example.com");

于 2012-12-14T06:18:51.953 に答える