Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从表中添加行,这些行位于';你不在另一张桌子上_Sql_Tsql - Fatal编程技术网

Sql 从表中添加行,这些行位于';你不在另一张桌子上

Sql 从表中添加行,这些行位于';你不在另一张桌子上,sql,tsql,Sql,Tsql,我有以下表格: Contacts contact_id, contact_name, etc. assigned_lists contact_id, list_id 每个联系人可以与多个列表关联,这些列表存储在assigned_list列中 我有很多与任何列表都没有关联的联系人。如何将所有与列表无关的联系人id插入到分配的列表中?尝试: INSERT INTO assigned_lists (contact_id, list_id) SELECT contact_id,

我有以下表格:

Contacts
      contact_id, contact_name, etc.
assigned_lists
      contact_id, list_id
每个联系人可以与多个列表关联,这些列表存储在
assigned_list
列中

我有很多与任何列表都没有关联的联系人。如何将所有与列表无关的
联系人id
插入到
分配的列表中?

尝试:

INSERT INTO assigned_lists (contact_id, list_id)
SELECT contact_id, 24
FROM Contacts
WHERE contact_id NOT IN (
  SELECT DISTINCT contact_id
  FROM assigned_lists
)
SQL Fiddle示例:

您可以尝试以下方法

INSERT INTO assigned_lists (contact_id, list_id)
SELECT contact_id, list_id = 1234
FROM Contacts C
WHERE NOT EXISTS (SELECT 1 FROM assigned_lists A WHERE A.contact_id  = C.contact_id )
请记住,not exists子句比not in子句具有性能优势


关于这一点的详细解释可以在这里找到

您在其中添加列表id是什么意思?硬编码值还是?是的,我有一个硬编码值,我需要输入。。。到目前为止,似乎没有一个答案是有效的。。。我得到一个错误:“字段列表”中的未知列“列表id”联系人表中没有列表id…如果服务器版本为2005或更高版本,我的答案应该有效;哪个版本?编辑:哇,可能根本不是SQL server。。。哪个RDBMS?谢谢你重复我的答案。@OzrenTkalčecKrznarić这不是你的答案。我正忙着用SQL Fiddle设置这个。这纯粹是巧合……呵呵,有趣的是,SQL语言对不同的人来说是如何工作的:)我一直收到这样的错误:“字段列表”中的未知列“列表id”你能试试第二行吗:
选择联系人id,1234
?哇,我不知道。有趣的东西,但不幸的是,在语法上没有在中那么明显。然而,对于大量的记录,我肯定会使用notexists+1.
INSERT INTO assigned_lists (contact_id, list_id)
SELECT contact_id, list_id = 1234
FROM Contacts C
WHERE NOT EXISTS (SELECT 1 FROM assigned_lists A WHERE A.contact_id  = C.contact_id )