-2

我有这个我无法开始工作的 SQL 语句,我不确定我做错了什么。

这是 SQL:

INSERT INTO data
(id_user,id_inf)
VALUES
(
 (SELECT userid FROM t4_adsmanager_ads WHERE userid NOT IN (select id_user from data) ),
 (SELECT id     FROM t4_adsmanager_ads WHERE id     NOT IN (select id_inf from data))
)

因为我想做的是t4_adsmanager_ads我有用户创建的广告

假设t4_adsmanager_adsid = 47 的用户有 id = 1,2,3 的广告

在数据表中我有

     id   id_inf   id_user

我希望它是那样的

         id   id_inf   id_user
         50     1        47
         51     2        47
         52     3        47

编辑:我的错误是没有错误只是没有工作thx

4

1 回答 1

1

您当前的语法要求子选择仅返回一条记录,而您的示例中并非如此。

我建议您在复合列的表中创建一个UNIQUE索引:data(id_user, id_inf)

ALTER TABLE data ADD UNIQUE INDEX (id_user, id_inf);

然后你只需要使用INSERT ... SELECT修饰符IGNORE

INSERT IGNORE INTO data (id_user, id_inf) SELECT userid, id FROM t4_adsmanager_ads;
于 2012-08-26T15:59:58.373 回答