Seite 1 von 1
PostgreSQL-Tabellen mit Python ergänzen
Verfasst: Sonntag 17. September 2006, 10:25
von BoOnOdY
Hy,
Ich habe mal wieder eine kleine Frage.
Wie Lese ich Daten mit Python aus einer Tabelle aus, vergleiche sie mit Daten aus einer 2ten und 3ten Tabelle und gebe sie dann mit diesen Daten ergänzt in eine letzte, andere Tabelle aus.
Also zum Beispiel
in der ersten Tabelle stehen
erste Zeile
Paulchen
Minka
Rex
zweite Zeile
3
2
1
in der zweiten
erste Zeile
1
2
3
zweite Zeile
Hund
Katze
Maus
und in der dritten tabelle soll dann stehen
Paulchen Maus
Minka Katze
Rex Hund
psycopg2 hab ich.
Sieht die SQL abfrage genau wie eine normale inner Join abfrage aus oder muss ich da was verändern?
Gruß Tim
[/code]
Verfasst: Sonntag 17. September 2006, 11:25
von BlackJack
Warum willst Du das in eine dritte Tabelle schreiben? Dann sind die Daten mehrfach in der DB vorhanden. So etwas will man normalerweise vermeiden. Sowie an einer der beteiligten Tabellen dann etwas verändert wird, stimmen die Daten nicht mehr mit den anderen überein.
Ansonsten kann man das mit einem `INSERT tabelle (spalten, ...) SELECT ...` lösen. Die Daten aus dem SELECT werden in die angegebene Tabelle eingefügt.
Verfasst: Sonntag 17. September 2006, 11:59
von rayo
Code: Alles auswählen
INSERT INTO tab3 (name, art) VALUES (SELECT name,art FROM tab1 JOIN tab2 ON tab1.id=tab2.id)
Keine Ahnung ob das funktioniert. Hab das jetzt einfach mal aus dem Kopf geschrieben
Gruss
Verfasst: Sonntag 17. September 2006, 12:17
von BoOnOdY
Es is erwünscht, dass die Daten sich nicht mehr verändern, weil die Ausgangsdaten sich auch nicht mehr verändern. Denn die Nummer der Tiere kann sich ändern, aber Rex bleibt trozdem immer ein Hund.
Also ich schreib ma was, und dann stell ich noch eine konkrete Frage zu meinem Quelltext, bis denne
Danke schon ma für die Antworten
Gruß Tim
Re: PostgreSQL-Tabellen mit Python ergänzen
Verfasst: Sonntag 17. September 2006, 13:10
von gerold
Verfasst: Sonntag 17. September 2006, 14:01
von BlackJack
BoOnOdY hat geschrieben:Es is erwünscht, dass die Daten sich nicht mehr verändern, weil die Ausgangsdaten sich auch nicht mehr verändern. Denn die Nummer der Tiere kann sich ändern, aber Rex bleibt trozdem immer ein Hund.
Aber wenn sich die Ausgangsdaten nicht mehr verändern, kann man doch trotzdem eine Anfrage darauf stellen und muss sie nicht in eine weitere Tabelle schreiben. Oder einen View "drüberlegen" wie gerold vorgeschlagen hat.
Verfasst: Montag 18. September 2006, 08:52
von BoOnOdY
Also es ist so, wir sagen die Tabelle mit den nummern und den Tierarten ändert sich jede Woche, aber wenn in der Woche 1 Rex mit der 1 ein Hund war, dann ist er in der Woche 2 mit der 1 eine Katze, sollte aber ein Hund sein,weil er ein Hund ist
Verfasst: Montag 18. September 2006, 11:26
von rayo
Hi
Du solltest einen Primary Key wählen/erstellen, der nicht geändert wird, sonst funktioniert das Datenbankdesign nur mit Triggers (ich denke nicht dass du die wirklich brauchst)
Warum ändert sich eine Liste der Tierarten jede Woche?
Gruss
Verfasst: Montag 18. September 2006, 11:33
von BoOnOdY
Das is nur ein Beispiel, die liste der Tiere ist in Wirklichkeit eine Preisliste, und die ändert sich jede Woche, aber es muss trozdem Protokolliert werden zu welchem Preis die Artikel verkauft wurden, also muss der Datensatz ausgelesen, ergänzt und wieder in eine neue Tabelle eingetragen werden.
Die Dantensätze haben in wikrlichkeit viel mehr spalten und auch einen primary Key
Verfasst: Montag 18. September 2006, 11:39
von rayo
Hi
Entweder speicherst du jede Änderung der Preisliste (Datumabhängig), dies wird jedoch mit der Zeit speicheraufwendig.
Die andere Möglichkeit ist in der Verkaufstabelle den Artikel mit dem aktuellen Verkaufspreis zu speichern.
Das wäre dann eine Tabelle mit:
ID, BestellID, ArtikelID, Preis, Datum, ...
Dann kannst du einfach bei jeder Bestellung den jeweiligen Artikel Verkaufspreis nachschlagen.
Gruss
Verfasst: Donnerstag 19. Oktober 2006, 16:32
von BoOnOdY
http://www.python-forum.de/topic-7561.html
hab die Frage mal ein bisschen konkreter gemacht.
Gruß Tim