Обновить несколько таблиц с объединением

0

У меня проблема SQL... я не могу обработать инструкцию update, основанную на нескольких таблицах. я уже просматривал учебники и форумы, настраивал свой код, пытался, пытался... но все равно не работает.

Можете ли вы мне помочь и сказать, где проблема? Был бы благодарен за любой маленький совет. Под моим обновлением-выражением..

салют

okanog

Код:

UPDATE 'system' 
                JOIN System AS Sys ON service.Servicename_ID = Sys.FK_Service_ID 
                JOIN Hardware ON System.System_ID = Hardware.FK_System_ID
                JOIN Verantwortlichkeit ON System.System_ID = Verantwortlichkeit.FK_System_ID
                JOIN Zertifikate ON System.System_ID = Zertifikate.FK_System_ID
                JOIN hardware_servername ON hardware.Servername = hardware_servername.Servername_ID
                JOIN hardware_domaene ON hardware_domaene.Domaene_ID = hardware.Domaene
                JOIN hardware_betriebssystem ON hardware_betriebssystem.Betriebssystem_ID =             hardware.Betriebssystem
                JOIN hardware_standort ON hardware_standort.Standort_ID = hardware.Standort
                JOIN verantwortlichkeit_personen AS AA ON AA.Verantwortlichkeit_Personen_ID = system.Hersteller
                JOIN verantwortlichkeit_personen AS AB ON AB.Verantwortlichkeit_Personen_ID = system.Externer_Partner
                JOIN system_verfuegbarkeitsstufe ON system_verfuegbarkeitsstufe.Verfuegbarkeitsstufe_ID = system.Verfuegbarkeitsstufe
                JOIN system_systemname ON system_systemname.Systemname_ID = system.Systemname
                JOIN system_systemnummer ON system_systemnummer.Systemnummer_ID = system.Systemnummer
                JOIN verantwortlichkeit_rolle ON verantwortlichkeit_rolle.Verantwortlichkeit_Rolle_ID = verantwortlichkeit.Rolle
                JOIN verantwortlichkeit_personen AS A0 ON A0.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Hauptverantwortlicher
                JOIN verantwortlichkeit_personen AS A1 ON A1.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Stellvertretung
                JOIN verantwortlichkeit_personen AS A2 ON A2.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Wissenstraeger_1
                JOIN verantwortlichkeit_personen AS A3 ON A3.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Wissenstraeger_2
                JOIN verantwortlichkeit_personen AS A4 ON A4.Verantwortlichkeit_Personen_ID = verantwortlichkeit.Verantwortlichkeit_extern
                SET 
                Sys.Systemnummer = '1', 
                Sys.Systembeschreibung = 'testbeschreubuzng', 
                Sys.Hersteller = 'Okan Koc', 
                Sys.Externer_Partner = 'Okan Koc', 
                Sys.'BKAG_Brugg' = b'1', 
                Sys.'BCIAG_Brugg' = b'1', 
                Sys.'Cables_Diverse_PL_CN_US_DE' = b'1', 
                Sys.'BINF' = b'1', 
                Sys.'BRAG_Kleindoettingen' = b'1', 
                Sys.'BRG_Wunstorf' = b'1', 
                Sys.'BGP_Nordhausen' = b'1', 
                Sys.'Pipes_Diverse_FR_PL_IT_US' = b'1', 
                Sys.'Ropes_BDAG_Birr' = b'1', 
                Sys.'HOLDING_Brugg' = b'1', 
                Sys.'BIAG_Brugg' = b'1', 
                Sys.'BPK_Brugg' = b'1', 
                Sys.'Dritte_Schule_Brugg_LithCom_usw' = b'1', 
                Sys.'Verfuegbarkeitsstufe' = '1', 
                Sys.'Datenverlust' = '1', 
                Sys.'Systemname' = 'Testsystem', 
                hardware.'Servername' = 'srvntstest',
                hardware.'Domaene' = 'cables.bruggnet.com',
                hardware.'Betriebssystem' = 'Windows Server 2012 R2',
                hardware.'Lokale_Datenbank' = '1',
                hardware.'Datenbank_SQL_Master' = 'SQLTEST',
                hardware.'Instanzname' = 'Testinstanz',
                hardware.'Standort' = 'RZ 1',
                hardware.'Backup_mit' = 'Veeam',

                verantwortlichkeit.'Rolle' = 'Systemtechnik',
                verantwortlichkeit.'Hauptverantwortlicher' = 'David Grunder',
                verantwortlichkeit.'Stellvertretung' = 'Robin Gloor',
                verantwortlichkeit.'Wissenstraeger_1' = 'Okan Koc',
                verantwortlichkeit.'Wissenstraeger_2' = 'Marc Gerber',
                verantwortlichkeit.'Verantwortlichkeit_extern' = 'infor',
                zertifikate.'Zertifikatname' = 'testzertifikat',
                zertifikate.'Ablaufdatum' = '27.12.2001'

                WHERE Sys.System_ID = 1
  • 0
    В каком смысле не работает?
  • 0
    @ P.Salmon Привет, Саломон, прежде всего, спасибо за то, что ты уделила время на ответ ... Я забыл написать, что это за ошибка; ошибка, возникающая в mysql, выглядит следующим образом: «# 1054 - Неизвестное табличное поле 'service.Servicename_ID' в предложении on». проблема в том, что у меня есть такое поле, и я могу выполнять другие запросы (поэтому отношения работают), но что-то не нужно здесь в этом операторе обновления.
Теги:
sql-update
mysqli

1 ответ

0
Лучший ответ

Невозможно определить все возможные ошибки в таком длинном запросе, но во второй строке есть две ошибки, которые я вижу, Service не определена и вы соединяетесь с самой System таблицей

UPDATE 'system' 
  JOIN System AS Sys ON service.Servicename_ID = Sys.FK_Service_ID 

Его нужно изменить на что-то вроде

UPDATE System Sys
  JOIN Service ON Service.Servicename_ID = Sys.FK_Service_ID 
  • 0
    о да, я попробую и эта ошибка больше не будет .. спасибо
  • 0
    Отлично, пожалуйста, отметьте ответ как одобренный.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню