Fwd: [nl-users] hulp gezocht bij update van veld info door info die in een andere tabel te vinden is.
Dag Rob, Dank voor de info. Lijkt me veel belovend. Bij deze is de info ook voor de anderen te lezen. Groeten, Ivo Doorgestuurd bericht Onderwerp: Re: [nl-users] hulp gezocht bij update van veld info door info die in een andere tabel te vinden is. Datum: Mon, 3 Apr 2023 21:57:29 +0200 Van:Rob Westein Aan:Ivo Raepsaet Hallo Ivo, Excuses voor mijn late antwoord. Wat mij betreft bestaat er geen "normale" SQL Database. met MySQL kan je bv ook niet meerdere records in 1 INSERT statement aanmaken. Wil je toch regelmatig ee insert van meerdere records willen uitvoeren, dan kan je gebruik maken van Formulieren binnen de formulieren kan je dan ook evt gebruik maken van macro's.Dan is het niet nodig om elke keer een insert statement te typen. Het blijft wat SQL betreft altijd wel een beetje zoeken hoe e.e.a. precies werkt. Documentatie voor HSQLDB kan je hier vinden: http://hsqldb.org/web/hsqlDocsFrame.html Voor wat betreft het updaten van een record vanuit een andere tabel vond ik deze post: https://ask.libreoffice.org/t/how-to-update-fields-in-base-from-another-table/20527 Ik heb het niet getest, maar het zou kunnen werken. of anders deze: https://ask.libreoffice.org/t/updating-a-table-field-with-data-from-another-table/27989 aub de volgende keer via de lijst beantwoorden, dan kunnen anderen ook profijt van hebben... mvg, Rob On 02-04-2023 20:25, Ivo Raepsaet wrote: Dag Rob, Dank voor info. Ik heb inderdaad HSQLDB. Kan je me een suggestie doen. Welke database zou ik dan gebruiken om "normale" sql instructies te kunnen gebruiken? Ik las dat ik kon verbinden met een mySQL database. Weet je wat ik hiervoor moet doen om een mySQL database op te starten? Of is dat geen goed idee? Groeten, Ivo Op 2/04/2023 om 15:44 schreef Rob Westein: Hi Ivo, De gebruikte database staat onderaan het scherm wanneer Base is geopend. mvg, Rob Westein On 01-04-2023 19:18, Ivo Raepsaet wrote: Dag Rob, Dank voor je antwoord. Waar kan ik vinden welke db ik heb? Ik vermoed dat ik de standaard genomen heb en dus een HSQLDB heb. Maar zeker ben ik dat niet. Groeten, Ivo Op 1/04/2023 om 15:25 schreef Rob Westein: Hallo Ivo, Welke database gebruik je? Tussen de diverse databases bestaan wat syntax verschillen nl. Zo is het in HSQLDB (standaard database als je een nieuwe .ODB aanmaakt) niet toegestaan om meerdere records aan te maken in 1 INSERT opdracht. mvg, Rob Westein On 31-03-2023 10:21, Ivo Raepsaet wrote: Beste, LO versie 7.1.2.2 hulp gezocht bij update van veld info door info die in een andere tabel te vinden is. Probleem: Ik wil in LO-base. waarden in een tabel aanpassen. Maar niet door een vaste waarde zoals "fiets" of 1234 maar door inhoud vanuit een andere tabel waarbij er een link is via eenzelfde ID. create table persoon as p (IDpersoon int, GSM varchar(13), primary key(IDpersoon)); insert into table persoon values (1, '0499228833'), (2, '0492 84 22 33'), (3, '0422 33 44 86'), (4, '0428885523'); create table nieuw as n (IDpersoon int, GSM varchar(13), primary key (IDpersoon)); insert into table persoon values (1, '0499 22 88 33'), (4, '0428 88 55 23'); Ik dacht dat dit kon met een sql als volgt, maar het lukt niet. Kan iemand helpen? Dank vooraf. update persoon as p set GSM=n.GSM inner join nieuw as n on p.IDpersoon=n.IDpersoon probleem 1: meerdere records tegelijk invoeren lukt niet. insert into table persoon (IDpersoon, GSM) values( 1, '0499228833'), (2, '0492 84 22 33'), (3, '0422 33 44 86'), (4, '0428885523'); lukt wel: insert into table persoon (IDpersoon, GSM) values( 1, '0499228833'); insert into table persoon (IDpersoon, GSM) values(2, '0492 84 22 33') ; insert into table persoon (IDpersoon, GSM) values(3, '0422 33 44 86'); insert into table persoon (IDpersoon, GSM) values(4, '0428885523'); Wat kan de reden zijn dat ',' tussen twee values niet wordt aanvaard? === probleem2: de inhoud voor set kan niet met een kolom zoals NIEUW.GSM gelinkt worden. Enkel met een expliciete waarde zoals "test" of 1234. Waarom kan dit niet? === Probleem 3: update set instructie laat blijkbaar geen inner join toe. Hoe moet het dan wel? Dank vooraf. Groeten, Ivo -- Ik gebruik LibreOffice - het gratis, vrije en open source kantoor pakket:https://www.libreoffice.org Respecteert uw privacy en geeft u de controle over uw gegevens terug -- Ik gebruik LibreOffice - het gratis, vrije en open source kantoor pakket:https://www.libreoffice.org Respecteert uw privacy en geeft u de controle over uw gegevens terug -- Unsubscribe instructions: E-mail to users+unsubscr...@nl.libreoffice.org Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette List archive: https://listarchives.libreoffice.org/nl/users/ Privacy Policy: https://www.documentfoundation.org/privacy
Re: [nl-users] hulp gezocht bij update van veld info door info die in een andere tabel te vinden is.
Hallo Ivo, Welke database gebruik je? Tussen de diverse databases bestaan wat syntax verschillen nl. Zo is het in HSQLDB (standaard database als je een nieuwe .ODB aanmaakt) niet toegestaan om meerdere records aan te maken in 1 INSERT opdracht. mvg, Rob Westein On 31-03-2023 10:21, Ivo Raepsaet wrote: Beste, LO versie 7.1.2.2 hulp gezocht bij update van veld info door info die in een andere tabel te vinden is. Probleem: Ik wil in LO-base. waarden in een tabel aanpassen. Maar niet door een vaste waarde zoals "fiets" of 1234 maar door inhoud vanuit een andere tabel waarbij er een link is via eenzelfde ID. create table persoon as p (IDpersoon int, GSM varchar(13), primary key(IDpersoon)); insert into table persoon values (1, '0499228833'), (2, '0492 84 22 33'), (3, '0422 33 44 86'), (4, '0428885523'); create table nieuw as n (IDpersoon int, GSM varchar(13), primary key (IDpersoon)); insert into table persoon values (1, '0499 22 88 33'), (4, '0428 88 55 23'); Ik dacht dat dit kon met een sql als volgt, maar het lukt niet. Kan iemand helpen? Dank vooraf. update persoon as p set GSM=n.GSM inner join nieuw as n on p.IDpersoon=n.IDpersoon probleem 1: meerdere records tegelijk invoeren lukt niet. insert into table persoon (IDpersoon, GSM) values( 1, '0499228833'), (2, '0492 84 22 33'), (3, '0422 33 44 86'), (4, '0428885523'); lukt wel: insert into table persoon (IDpersoon, GSM) values( 1, '0499228833'); insert into table persoon (IDpersoon, GSM) values(2, '0492 84 22 33') ; insert into table persoon (IDpersoon, GSM) values(3, '0422 33 44 86'); insert into table persoon (IDpersoon, GSM) values(4, '0428885523'); Wat kan de reden zijn dat ',' tussen twee values niet wordt aanvaard? === probleem2: de inhoud voor set kan niet met een kolom zoals NIEUW.GSM gelinkt worden. Enkel met een expliciete waarde zoals "test" of 1234. Waarom kan dit niet? === Probleem 3: update set instructie laat blijkbaar geen inner join toe. Hoe moet het dan wel? Dank vooraf. Groeten, Ivo -- Ik gebruik LibreOffice - het gratis, vrije en open source kantoor pakket: https://www.libreoffice.org Respecteert uw privacy en geeft u de controle over uw gegevens terug -- Unsubscribe instructions: E-mail to users+unsubscr...@nl.libreoffice.org Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette List archive: https://listarchives.libreoffice.org/nl/users/ Privacy Policy: https://www.documentfoundation.org/privacy
Re: [nl-users] hulp gezocht bij update van veld info door info die in een andere tabel te vinden is.
Nu aan de groep, dat gaat nog al eens verkeerd: Op vr 31-03-2023 om 10:21 schreef Ivo Raepsaet: hulp gezocht bij update van veld info door info die in een andere tabel te vinden is. Dat zijn wel veel vragen tegelijk. Ik heb de eerste vraag eens in ChatGPT gegooid en dit kwam er uit. Misschien moet je nog wat meer doorvragen. ChatGPT is zeker niet foutloos, dus succes is niet verzekerd. > Hoe kan ik in LibreOffice Base meer dan één telefoonnummer tegelijk toevoegen aan een persoon? In LibreOffice Base kunt u meer dan één telefoonnummer toevoegen aan een persoon door een relatie te leggen tussen twee tabellen: één voor personen en één voor telefoonnummers. Hier zijn de stappen om dit te doen: Maak een tabel voor personen met een unieke id voor elke persoon, bijvoorbeeld 'persoon_id'. Maak een tabel voor telefoonnummers met een unieke id voor elk telefoonnummer, bijvoorbeeld 'telefoon_id', en een veld voor het telefoonnummer zelf, bijvoorbeeld 'telefoonnummer'. Maak een derde tabel, bijvoorbeeld 'persoon_telefoon', om de relatie tussen personen en telefoonnummers op te slaan. Deze tabel bevat twee velden: 'persoon_id' en 'telefoon_id', die beiden verwijzen naar respectievelijk de 'persoon' en 'telefoonnummer' tabellen. Voeg records toe aan de 'persoon' tabel voor elke persoon en records aan de 'telefoonnummer' tabel voor elke telefoonnummer. Voeg records toe aan de 'persoon_telefoon' tabel om de relatie tussen personen en telefoonnummers vast te leggen. Dit wordt gedaan door de 'persoon_id' en 'telefoon_id' te koppelen aan de juiste records in de respectievelijke tabellen. Nu kunt u meerdere telefoonnummers toevoegen aan een persoon door simpelweg records toe te voegen aan de 'persoon_telefoon' tabel die de 'persoon_id' van de persoon en de 'telefoon_id' van het telefoonnummer bevat. Als u bijvoorbeeld drie telefoonnummers aan een persoon wilt toevoegen met de id '1', voegt u drie records toe aan de 'persoon_telefoon' tabel met '1' als 'persoon_id' en de unieke 'telefoon_id's' van elk telefoonnummer. Met deze opzet kunt u ook gemakkelijk een persoon opzoeken en alle bijbehorende telefoonnummers weergeven of een telefoonnummer opzoeken en alle personen weergeven die dat nummer hebben. > Met welke opdrachten doe ik dat? Om records toe te voegen aan de verschillende tabellen en de koppeling tussen de tabellen te maken, kunt u SQL-opdrachten gebruiken in LibreOffice Base. Hier zijn enkele voorbeelden van SQL-opdrachten die u kunt gebruiken: Om een nieuwe persoon toe te voegen aan de 'persoon' tabel: INSERT INTO persoon (voornaam, achternaam) VALUES ('Jan', 'Jansen'); Hierbij wordt een nieuwe persoon met de voornaam 'Jan' en de achternaam 'Jansen' toegevoegd aan de 'persoon' tabel. Het 'persoon_id' wordt automatisch gegenereerd door de database. Om een nieuw telefoonnummer toe te voegen aan de 'telefoonnummer' tabel: INSERT INTO telefoonnummer (telefoonnummer) VALUES ('0123456789'); Hierbij wordt een nieuw telefoonnummer '0123456789' toegevoegd aan de 'telefoonnummer' tabel. Het 'telefoon_id' wordt automatisch gegenereerd door de database. Om een relatie tussen een persoon en een telefoonnummer te maken in de 'persoon_telefoon' tabel: INSERT INTO persoon_telefoon (persoon_id, telefoon_id) VALUES (1, 1); Hierbij wordt er een relatie gelegd tussen persoon met 'persoon_id' = 1 en telefoonnummer met 'telefoon_id' = 1 in de 'persoon_telefoon' tabel. Dit betekent dat het telefoonnummer '0123456789' is toegewezen aan de persoon met 'persoon_id' = 1. Om alle telefoonnummers op te halen voor een persoon met 'persoon_id' = 1: SELECT telefoonnummer FROM telefoonnummer JOIN persoon_telefoon ON telefoonnummer.telefoon_id = persoon_telefoon.telefoon_id WHERE persoon_telefoon.persoon_id = 1; Hierbij wordt er een join gemaakt tussen de 'telefoonnummer' tabel en de 'persoon_telefoon' tabel op basis van 'telefoon_id'. De query filtert de resultaten op basis van de 'persoon_id' = 1 en haalt alle bijbehorende telefoonnummers op voor die persoon. Dit zijn slechts enkele voorbeelden van SQL-opdrachten die u kunt gebruiken om records toe te voegen en te wijzigen in de verschillende tabellen en om de koppeling tussen de tabellen te maken. U kunt ook andere SQL-opdrachten gebruiken, afhankelijk van uw specifieke behoeften en de structuur van uw database. -- Alex. -- Unsubscribe instructions: E-mail to users+unsubscr...@nl.libreoffice.org Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette List archive: https://listarchives.libreoffice.org/nl/users/ Privacy Policy: https://www.documentfoundation.org/privacy
[nl-users] hulp gezocht bij update van veld info door info die in een andere tabel te vinden is.
Beste, LO versie 7.1.2.2 hulp gezocht bij update van veld info door info die in een andere tabel te vinden is. Probleem: Ik wil in LO-base. waarden in een tabel aanpassen. Maar niet door een vaste waarde zoals "fiets" of 1234 maar door inhoud vanuit een andere tabel waarbij er een link is via eenzelfde ID. create table persoon as p (IDpersoon int, GSM varchar(13), primary key(IDpersoon)); insert into table persoon values (1, '0499228833'), (2, '0492 84 22 33'), (3, '0422 33 44 86'), (4, '0428885523'); create table nieuw as n (IDpersoon int, GSM varchar(13), primary key (IDpersoon)); insert into table persoon values (1, '0499 22 88 33'), (4, '0428 88 55 23'); Ik dacht dat dit kon met een sql als volgt, maar het lukt niet. Kan iemand helpen? Dank vooraf. update persoon as p set GSM=n.GSM inner join nieuw as n on p.IDpersoon=n.IDpersoon probleem 1: meerdere records tegelijk invoeren lukt niet. insert into table persoon (IDpersoon, GSM) values( 1, '0499228833'), (2, '0492 84 22 33'), (3, '0422 33 44 86'), (4, '0428885523'); lukt wel: insert into table persoon (IDpersoon, GSM) values( 1, '0499228833'); insert into table persoon (IDpersoon, GSM) values(2, '0492 84 22 33') ; insert into table persoon (IDpersoon, GSM) values(3, '0422 33 44 86'); insert into table persoon (IDpersoon, GSM) values(4, '0428885523'); Wat kan de reden zijn dat ',' tussen twee values niet wordt aanvaard? === probleem2: de inhoud voor set kan niet met een kolom zoals NIEUW.GSM gelinkt worden. Enkel met een expliciete waarde zoals "test" of 1234. Waarom kan dit niet? === Probleem 3: update set instructie laat blijkbaar geen inner join toe. Hoe moet het dan wel? Dank vooraf. Groeten, Ivo -- Unsubscribe instructions: E-mail to users+unsubscr...@nl.libreoffice.org Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette List archive: https://listarchives.libreoffice.org/nl/users/ Privacy Policy: https://www.documentfoundation.org/privacy