SQLite mehrere Tabelle, INNER JOIN mit USING (...) Fehler
Ich versuche eine Abfrage ausführen, auf eine SQLite-Datenbank, die INNER JOIN
s zwei zusätzliche Tabellen:
SELECT
usages.date AS date,
usages.data AS data,
stores.number AS store,
items.name AS item
FROM usages
INNER JOIN stores USING (store_id)
INNER JOIN items USING (item_id)
Jedoch bekomme ich die Fehlermeldung
SQL error: cannot join using column item_id - column not present in both tables
Ich weiß, ich kann die explizite INNER JOIN stores ON usages.store_id = stores.store_id
(und es funktioniert), aber:
warum die USING
Abfrage-Fehler in SQLite?
Es nicht auf MySQL...
Sollte ich beachten:
Dies ist nicht ein problem für mich, da bin ich mit der ON
syntax, aber ich würde gerne wissen, warum dies geschieht.
- Sie sagen
INNER JOIN stores ON usages.store_id = stores.store_id
funktioniert, aber das ist nicht die Verknüpfung die Fehlermeldung beschwert sich über die sowieso. - Ich weiß. Das ist, was ich sage. Die
ON
syntax funktioniert, aber dieUSING
syntax nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So haben Sie:
...und Sie erhalten eine Fehlermeldung, die sagt:
Dass einer der mindestens kryptische Fehlermeldungen, die ich gesehen habe.
Was ich nicht mag, ist, dass es mir nicht klar, was die Tabelle wird im Vergleich zu
ITEMS.item_id
- ist esSTORES
oderUSAGES
? Das ist der Grund, warum ich es unterlassen, dieUSING
oderNATURAL
join-syntax...FROM ((usages INNER JOIN stores USING (store_id)) INNER JOIN items USING (item_id))
aber das hat nicht funktioniert.USING
syntax, und korrigieren Sie Ihre Abfrage.ON
syntax und wie es war am meisten unterstützt, dann über die weniger-unterstützt-aber-noch-standardUSING
syntax, und dachte, ich würde give it a go, weil es einfacher ist. Sobald es nicht funktioniert hat, wechselte ich auf dieON
syntax ohne Probleme. Ich Frage mich nur, warumJOIN
ing mehreren Tabellen funktionierte nicht mitUSING
.