Author

Topic: Frage zu SQLITE [Python] (Read 119 times)

legendary
Activity: 1455
Merit: 1033
January 12, 2018, 10:51:54 AM
#2
Quote
Wenn es dir wichtig ist, dass je Result 2 Werte verschiedener Tabellen zurück gegeben werden, müssen die zuvor sinnvoll miteinander verknüpft werden, z. B. per JOIN.
Um dir da helfen zu können, müsste man zuvor mal die Tabellenstruktur beider Tabellen kennen.

Ich habe es jetzt etwas anderst gelöst da ich nicht unbedingt eine Datenbank brauch in welcher die beiden Tabellen verknüpft sind, sondern lediglich an dern Werten interresiert bin.
...aber das kann man sicher auch eleganter lößen,..... den "JOIN"-Befehl werde ich mir dann am Montag mal genauer anschauen.

Quote
...
...
c = conn.cursor()
c.execute("SELECT data_id, start_date, end_date, data_type FROM samples")  
abfrage1 = c.fetchall()
   
c.execute("SELECT quantity, original_quantity FROM quantity_samples")    
abfrage2 = c.fetchall()

i=0
for row in abfrage1:
   
   if row[3] == 7:
      action = "Alpha"
   elif row[3] == 8:
      action = "Beta"
   elif row[3] == 12:
      action = "Final"
   else: action = ""
      
   date_start = str(datetime.datetime.fromtimestamp(unixTS + row[1]))[:-7]

   date_end = str(datetime.datetime.fromtimestamp(unixTS + row[2]))[:-7]
   
   line=str(row[0])+";"+date_start+";"+date_end+";"+action+";"+str(abfrage2
  • )+";"+str(abfrage2[1])
   table.append(line)
   i+=1
path=os.getcwd()
db=path+'/auswertung.csv'

file = open(db,'w')
for zeile in table:
      print(zeile)
      file.write(zeile+"\n")
file.close()
legendary
Activity: 1455
Merit: 1033
January 11, 2018, 11:52:02 AM
#1
Hallo,
ich arbeite mich derzeit gerade in Python ein und möchte von einer SQL-Datenbank aus 2 verschiedenen Tabellen Spalten miteinander verknüpfen, aber leider klappt das nicht wie gewollt.

Code:
conn = sqlite3.connect('healthdb_secure.sqlite')
c = conn.cursor()

for row in c.execute("SELECT s.data_id, s.start_date, s.end_date, q.data_type FROM samples AS s ,quantity AS q")
     print(row)


Ich hätte gerne das jeweils in einer Zeile die oben abgefragten Tabellenwerte angezeit werden, aber es wird zu jeder Zeile aus Tabelle 1 die komplette 2. Tabelle angehängt.

Die ausgabe sieht dann so aus:

T1.Zeile-1, T2.Zeile-1
T1.Zeile-1, T2.Zeile-2
T1.Zeile-1, T2.Zeile-3
...
...
T1.Zeile-2, T2.Zeile-1
T1.Zeile-2, T2.Zeile-2
..
..
..

gewünscht wäre:

T1.Zeile-1, T2.Zeile-2
T1.Zeile-2, T2.Zeile-2
..
..



Hat jemand eine Lösung für dieses Problem?
Jump to: