从另一个表插入MSSQL表无效?

从另一个表插入MSSQL表无效?,sql,sql-server,Sql,Sql Server,我创建了两个表 表1,邮件组: mail_group_id | mail_group_name 表2,邮件收件人列表: id | mail_group_id | recipient_id 将数据插入邮件收件人列表表格。我编写了以下SQL,但它不起作用 INSERT INTO mail_recipient_list (mail_group_id, recipient_id) SELECT TOP 1 id FROM mail_groups WHERE mail_group_name='".$

我创建了两个表

表1,
邮件组

mail_group_id | mail_group_name
表2,
邮件收件人列表

id | mail_group_id | recipient_id
将数据插入
邮件收件人列表
表格。我编写了以下SQL,但它不起作用

INSERT INTO mail_recipient_list (mail_group_id, recipient_id) 
SELECT TOP 1 id FROM mail_groups WHERE mail_group_name='".$key."', '".$value."'
作为此查询,我想从
mail\u groups表
中获取
mail\u group\u id
。我可以从html表单中获取
收件人id
$key
mail\u group\u name


有人能建议我解决这个问题吗。谢谢。

正如我在评论中建议的,您的查询应该是:

"INSERT INTO mail_recipient_list (mail_group_id, recipient_id) 
SELECT TOP 1 id, '".$value."' FROM mail_groups WHERE mail_group_name='".$key."'";

正如我在评论中所建议的,您的问题应该是:

"INSERT INTO mail_recipient_list (mail_group_id, recipient_id) 
SELECT TOP 1 id, '".$value."' FROM mail_groups WHERE mail_group_name='".$key."'";


这是什么
mail\u group\u name='“$key.”,“$value.”
?@f看起来像PHP。@RobertColumbia正在尝试将这两个
“$key.”,“$value.”连接起来。
?然后将它们与
mail\u group\u name
?@f值来自PHP的Flash进行比较,正如我解释的那样,$key有mail\u group\u name,$value有recipient\u id。然后,第二个查询应该是
“从mail\u group\u name=”、“$key.”、“
这是什么
mail\u group\u name=”、“$key.”、“$value.”“
?@f Flash看起来像PHP。@RobertColumbia正在尝试将这两个
”、“$key.”、“$value.”连接起来。
?然后将它们与
mail\u group\u name
?@进行比较,结果显示值来自PHP,正如我解释的那样,$key有mail\u group\u name,$value有recipient\u id。然后第二个查询应该是
“选择前1个id”,“$value.”来自mail\u group\u name=“$key.”“
好的,我现在使用了
LIMIT
,而不是前1,再试一次MSSQL不支持LIMIT,他们支持TOP。我的错误我以为你在使用mysql,现在检查我的答案…它以前不起作用,因为缺少引号这应该起作用,除非你的
$key
值在数据库中没有匹配项…..你也可以尝试硬编码变量值,看看它是否真的有效
从邮件组中选择TOP 1 id,'2',其中邮件组名称='your key value'
好的,我现在使用了
限制
而不是TOP 1,再次尝试MSSQL不支持限制,他们支持TOP。我错了,我以为你在使用mysql,现在检查我的答案…它以前不起作用,因为缺少引号。这应该起作用,除非你的
$key
值在数据库中没有匹配项…你也可以尝试硬编码变量值,看看它是否真的起作用
选择TOP 1 id,“2”来自mail\u group,其中mail\u group\u name='your key value'