المتقدم الخلية الاستعلام: تحديث الجدول مع معلومات من جدول آخر

StackOverflow https://stackoverflow.com/questions/1202075

  •  05-07-2019
  •  | 
  •  

سؤال

وأود أن تحديث جدول في الخلية مع بيانات من جدول آخر.

ولدي جدولين "الناس" و "العمل". يرتبط الجدول الناس إلى طاولة الأعمال من خلال عمود يسمى "على business_id".

وهيكل الجدول ضروري، وتألق المفتاح الأساسي (الجدول: الأعمدة): الناس: * على business_id، * SORT_ORDER، والبريد الإلكتروني رجال الأعمال: * على business_id، والبريد الإلكتروني

وأود أن تحديث العمود البريد الإلكتروني جدول الأعمال مع البريد الإلكتروني من الجدول الناس، شيئا من هذا القبيل (وأنا أعلم أنا في عداد المفقودين شيء هنا):

UPDATE business b SET email = (SELECT email  from People p where p.business_id = b.business_id AND sort_order = '1') WHERE b.email = ''; 

هل هذا معقول؟ هل من الممكن؟

هل كانت مفيدة؟

المحلول

UPDATE business b, people p
   SET b.email = p.email
 WHERE b.business_id = p.business_id
   AND p.sort_order = '1'
   AND b.email = ''

نصائح أخرى

ملحوظة، إذا SORT_ORDER هو INT، ثم لا تستخدم "1" - استخدام 1:

UPDATE business b
JOIN People p
ON p.business_id = b.business_id
AND p.sort_order = '1'
SET b.email = p.email
WHERE b.email = '';

وجرب هذا، أنه يعمل بشكل جيد بالنسبة لي.

Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top