我有两个具有关系的表格,我想更新表A中的字段。是否可以在同一查询中组合更新和联接?我GOOGLE了它,但没有找到任何工作解决方案?更新和左外部联接语句
UPDATE md SET md.status = '3'
FROM pd_mounting_details AS md
LEFT OUTER JOIN pd_order_ecolid AS oe ON md.order_data = oe.id
我使用MS SQL
我有两个具有关系的表格,我想更新表A中的字段。是否可以在同一查询中组合更新和联接?我GOOGLE了它,但没有找到任何工作解决方案?更新和左外部联接语句
UPDATE md SET md.status = '3'
FROM pd_mounting_details AS md
LEFT OUTER JOIN pd_order_ecolid AS oe ON md.order_data = oe.id
我使用MS SQL
Update t
SET
t.Column1=100
FROM
myTableA t
LEFT JOIN
myTableB t2
ON
t2.ID=t.ID
替换myTableA
您的表名和与你的列名替换Column1
。 在此之后,简单地左连接到tableB。 t
在这种情况下,仅仅是myTableA
别名如果你需要的是从SELECT语句UPDATE,你可以做这样的事情:
UPDATE suppliers
SET city = (SELECT customers.city FROM customers
WHERE customers.customer_name = suppliers.supplier_name)
的LEFT JOIN在此查询是没有意义的:
UPDATE md SET md.status = '3'
FROM pd_mounting_details AS md
LEFT OUTER JOIN pd_order_ecolid AS oe ON md.order_data = oe.id
它会更新pd_mounting_details
的所有行,无论pd_order_ecolid
中是否存在匹配的行。如果你只想更新匹配的行,它应该是一个内部连接。
如果要基于发生或未发生的联接应用某些条件,则需要在SET
子句中添加WHERE
子句和/或CASE
表达式。
,其中从表1中列的值插入列在表2中又一个例子:
UPDATE Address
SET Phone1 = sp.Phone
FROM Address ad LEFT JOIN Speaker sp
ON sp.AddressID = ad.ID
WHERE sp.Phone <> ''
添加该代码的指示错误,什么是你穿越到加盟? – JonH 2011-06-13 19:55:13
@JohnH对不起,交叉连接不在那里,视觉工作室因为某些原因自动添加了这个.. – Evilaid 2011-06-13 20:01:27
请接受一个答案... – JonH 2018-01-24 17:40:59