Mysql 在这种情况下,如何使用嵌套的INSERT/SELECT命令?

Mysql 在这种情况下,如何使用嵌套的INSERT/SELECT命令?,mysql,Mysql,我有这个命令: INSERT INTO table2 (username,profile) SELECT DISTINCT username,profile FROM table1 WHERE profile='$profile' and username <> '$sender' 插入表2(用户名,配置文件)选择不同的用户名,配置文件 来自表1,其中profile='$profile'和用户名'$sender' 我的问题是我想要这样:插入到表2中(用户名、配置文件、类型)其中

我有这个命令:

INSERT INTO table2 (username,profile) SELECT DISTINCT username,profile 
FROM table1 WHERE profile='$profile' and username <> '$sender'
插入表2(用户名,配置文件)选择不同的用户名,配置文件
来自表1,其中profile='$profile'和用户名'$sender'
我的问题是我想要这样:
插入到表2中(用户名、配置文件、类型)
其中类型将是相同的字符串,说“字符串”

重要提示:我只希望
用户名
不同<代码>配置文件和
类型
可以相同。 此外,
profile
将始终是相同的值

我怎样才能做到这一点

非常感谢,请插入表2中(用户名、配置文件、类型)
INSERT INTO table2 (username, profile, type)
SELECT username, profile, "string"
FROM table1
WHERE profile='$profile' AND username <> '$sender'
GROUP BY username
选择用户名、配置文件、“字符串” 来自表1 其中profile='$profile'和用户名'$sender' 按用户名分组 请绝对确定
$profile
$sender
已清除可能的SQL注入攻击(如果这对您没有任何意义,请阅读相关内容)。最好使用预先准备好的语句,将变量作为参数传递到语句中,而这些参数不会对SQL进行计算。

插入到表2中(用户名、配置文件、类型)
选择用户名、配置文件、“字符串”
来自表1
其中profile='$profile'和用户名'$sender'
按用户名分组

绝对确定
$profile
$sender
已清除可能的SQL注入攻击(如果这对您没有任何意义,请阅读相关内容)。您最好使用预先准备好的语句,将变量作为参数传递到语句中,这些参数不会对SQL进行求值。

我假设您正在寻找类似于

UserFred profile1 type1
UserBill profile2 type1
UserJim  profile1 type8
您需要在子选择中应用GROUPBY语句

INSERT INTO table2 (username,profile)
   SELECT DISTINCT username,profile 
   FROM table1 WHERE profile='$profile' and username <> '$sender'
   GROUP BY username;
插入到表2中(用户名、配置文件)
选择不同的用户名、配置文件
来自表1,其中profile='$profile'和用户名'$sender'
按用户名分组;

我做了一个巨大的假设,您正在寻找类似于

UserFred profile1 type1
UserBill profile2 type1
UserJim  profile1 type8
您需要在子选择中应用GROUPBY语句

INSERT INTO table2 (username,profile)
   SELECT DISTINCT username,profile 
   FROM table1 WHERE profile='$profile' and username <> '$sender'
   GROUP BY username;
插入到表2中(用户名、配置文件)
选择不同的用户名、配置文件
来自表1,其中profile='$profile'和用户名'$sender'
按用户名分组;

Hi,实际上配置文件总是相同的。让我在postHi中编辑它,实际上配置文件总是相同的。让我在postHi中编辑一下,谢谢你的提示。我使用了mysql\u real\u escape\u string()。看来这是很好的保护,不是吗?ThanksIt很好,但它在过去有可利用的bug;谁知道呢,也许还会找到更多?参数化语句更安全。感谢您的回复。我正在查看
groupby
的手册,它似乎没有我想要的
DISTINCT
的效果。它应该是吗?在这种情况下,它们实际上具有相同的效果。如果愿意,您仍然可以使用
DISTINCT
——MySQL需要做更多的工作,因为它需要比较三列的不同值,而不是一列。您好,谢谢您的提示。我使用了mysql\u real\u escape\u string()。看来这是很好的保护,不是吗?ThanksIt很好,但它在过去有可利用的bug;谁知道呢,也许还会找到更多?参数化语句更安全。感谢您的回复。我正在查看
groupby
的手册,它似乎没有我想要的
DISTINCT
的效果。它应该是吗?在这种情况下,它们实际上具有相同的效果。如果愿意,您仍然可以使用
DISTINCT
——MySQL需要做更多的工作,因为它需要比较三列的不同值,而不是一列。