I'm not sure whether this is a bug or not.
I stumbled across a situation where a table alias sometimes is reflected in the 
column name and sometimes not.
It *is* reflected when the last join is a *left* one.
Script (sorry that I couldn't come up with a simpler test case):


CREATE TABLE t_variablen_flaeche
( id  INT32,
id_var  INT32,
id_flaeche  INT32,
wert  DOUBLE,
herkunft  TEXT,
datum  DATETIME,
bemerkungen  TEXT,
id_variante  INT32 );
 
CREATE TABLE t_variablen_flaeche_metadaten
( id_var  INT32,
beschreibung  TEXT,
iwg_einheit  TEXT,
bemerkungen  TEXT,
id_stoff  INT32,
familie  TEXT,
id_spezifikation  INT32,
variante_beschreibung  TEXT,
variante_datenquelle  TEXT );
 
CREATE TABLE t_variablen_gesamt
( id  INT32,
art  TEXT,
name  TEXT,
bemerkungen  TEXT,
herkunft  TEXT );

INSERT INTO t_variablen_flaeche (id_var, id_flaeche, wert)
VALUES (1449, 10001, 291.158), (2271, 10001, 0.15);

INSERT INTO t_variablen_flaeche_metadaten  (id_var, beschreibung, iwg_einheit)
VALUES (1449, 'Fläche des Analysegebiets', 21), (2271, 'geogener CD -Gehalt im 
Oberboden von natürlich bedecktem Land und Bergregionen, v2', 33);

INSERT INTO t_variablen_gesamt (id, name)
VALUES (1449, 'BI_AU_A'), (2271, 'ER_CONT_geo_HM_v2_CD');

SELECT
  vf.id_flaeche,
  mg.name,
  mvf.beschreibung,  
  mvf.id_var,
  vf.wert,
  mvf.iwg_einheit
FROM
  t_variablen_gesamt mg JOIN t_variablen_flaeche_metadaten mvf
                        ON   mg.id = mvf.id_var
                        /*LEFT*/ JOIN (
                                       SELECT
                                         id_var,
                                         id_flaeche,
                                         wert
                                       FROM
                                         t_variablen_flaeche
                                       WHERE
                                         id_flaeche = 10001
                                      ) vf
                        ON   vf.id_var = mvf.id_var
WHERE
  vf.id_flaeche IS NOT NULL
ORDER BY
  vf.id_flaeche,
  mg.name;
 
Uncomment the last /*LEFT*/ JOIN and the column headers are id_flaeche, name, 
beschreibung etc. vs. vf.id_flaeche, mg.name, mvf.beschreibung as it stands now.
Tested with the latest command line version under Windows, the latest .NET 
provider and SQLiteSpy (SQLite version 3.8.0.2).
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to