I asked myself how I print a.rowname
in Java with jbdc sqlite.
Or did I take the wrong solution to fetch all the Selected data?
I tried this:
String vergleichVon ="DB_18_12_2021_02h13m05s"; String vergleichBis ="DB_18_12_2021_08h28m19s"; Connection connection = null; try { //Connect to Database connection = DriverManager.getConnection("jdbc:sqlite:"+dataBasePath+""); Statement c = connection.createStatement(); c.setQueryTimeout(30); // set timeout to 30 sec. ResultSet rs = c.executeQuery("SELECT a.name, a.pt, b.pt, a.sz, a.bd"+ "FROM "+vergleichVon+" AS a, "+vergleichBis+" AS b "+ "WHERE a.name= b.name AND a.pt>'1000' AND b.pt>='1000' AND a.pt!='n/v' AND b.pt!='n/v' "+ "ORDER BY a.pt DESC"); while(rs.next()) { // read the result set System.out.print("nameA = " + rs.getString("a.name")); System.out.print(" "); System.out.println("ptB = " + rs.getString("b.pt")); } }
And I get this error:
no such column: 'a.name'
In Python it works kind of like this. I can later just get the Selected data from the array:
c.execute('''SELECT a.name, a.pt, b.pt, a.sz, a.bd FROM '''+vergleich_von+''' AS a, '''+vergleich_bis+''' AS b WHERE a.name= b.name AND a.pt>'1000' AND b.pt>='1000' AND a.pt!='n/v' AND b.pt!='n/v' ORDER BY a.pt DESC''') array = c.fetchall()
Advertisement
Answer
You do not select a.spieler
try:
ResultSet rs = c.executeQuery("SELECT a.name as spieler, a.pt, b.pt as bpt, a.sz, a.bd"+ "FROM "+vergleichVon+" AS a, "+vergleichBis+" AS b "+ "WHERE a.name= b.name AND a.pt>'1000' AND b.pt>='1000' AND a.pt!='n/v' AND b.pt!='n/v' "+ "ORDER BY a.pt DESC"); while(rs.next()) { // read the result set System.out.print("nameA = " + rs.getString("spieler")); System.out.print(" "); System.out.println("ptB = " + rs.getString("bpt")); }
Update after question edit Use aliases for the columns without dots:
ResultSet rs = c.executeQuery("SELECT a.name as name, a.pt as apt, b.pt as bpt, a.sz as asz, a.bd as adb"+ "FROM "+vergleichVon+" AS a, "+vergleichBis+" AS b "+ "WHERE a.name= b.name AND a.pt>'1000' AND b.pt>='1000' AND a.pt!='n/v' AND b.pt!='n/v' "+ "ORDER BY a.pt DESC"); while(rs.next()) { // read the result set System.out.print("nameA = " + rs.getString("name")); System.out.print(" "); System.out.println("ptB = " + rs.getString("bpt")); }