ich brauche verschiedene Daten aus einer PostgreSQL Datenbank (Version 13+225+deb11u1) damit ich sie per bash weiterverarbeiten kann. Ich bin soweit gekommen, dass mir:
psql -d lcportal -c 'SELECT "NAME","DEVICE_IP" FROM "dc_vpn_clients"';
Die Spalten NAME und DEVICE_IP korrekt anzeigt. Jetzt brauche ich aber noch Daten aus einer anderen Tabelle, Abfrage wäre:
psql -d lcportal -c 'SELECT "ADDR" FROM "dc_vpn_addr"'
Aber da die Datensätze/Zeilen zusammengehören, vermutlich über die Spalte "id" "verbunden", wie bekomme ich beide Abfragen "zusammen", damit ich eine Liste beider Tabellen mit den korrekt zugeordneten Zeilen bekomme?
zB. so:
id | NAME | DEVICE_IP | ADDR |
Ich habe probiert:
psql -d lcportal -c 'SELECT "id","NAME","DEVICE_IP","ADDR" FROM "dc_vpn_clients","dc_vpn_addr"';
aber da bekomme ich Kauderwelsch zurück.
Habe UNION gefunden, aber:
psql -d lcportal -c 'SELECT "NAME","DEVICE_IP" FROM "dc_vpn_clients"' UNION 'SELECT "ADDR" FROM "dc_vpn_addr"';
Bringt einen Fehler:
Code: Alles auswählen
root@server ~ # psql -d lcportal -c 'SELECT "NAME","DEVICE_IP" FROM "dc_vpn_clients"' UNION 'SELECT "ADDR" FROM "dc_vpn_addr"';
psql: warning: extra command-line argument "SELECT "ADDR" FROM "dc_vpn_addr"" ignored
psql: error: FATAL: Peer authentication failed for user "UNION"
root@yados-vpn ~ # psql -d lcportal -c 'SELECT "NAME","DEVICE_IP" FROM "dc_vpn_clients" UNION SELECT "ADDR" FROM "dc_vpn_addr"';
ERROR: each UNION query must have the same number of columns
LINE 1: ...E","DEVICE_IP" FROM "dc_vpn_clients" UNION SELECT "ADDR" FRO...
^
root@server ~ #