Dies ist eine vereinfachte Version meiner Abfrage. Es läuft in SQLite ohne ein Problem, aber nicht so in MySQL.Problem mit SQL-Join-Abfrage
Fehler: Unknown column 'tab2.key' in 'on-Klausel'
SELECT
tab2.key AS remarksId,
tab1.sessionDate AS date,
tab1.sessionStart AS startTime
FROM
table1 AS tab1,
table2 AS tab2,
table3 AS tab3,
table4 AS tab4
INNER JOIN
table5 AS tab5
ON
tab5.remarkId = tab2.key
WHERE
tab1.userId='<anyNumber>' AND
tab2.objectiveId='<anyKey>' AND
tab1.reportId=tab2.reportId AND
tab1.reportId=tab3.key AND
tab4.key=tab3.sortieId
ORDER BY date, startTime;
die Spalten setzen in `war leider keine Hilfe.
Ich bin mir nicht sicher, ob die Benennung einer Spalte "Schlüssel" eine gute Praxis ist (MYSQL Keywords), aber ich muss dies aufgrund bestehender Installationen irgendwie handhaben. Für einen schnellen Test habe ich die 'key'-Spalten umbenannt, aber auch ohne Erfolg.
Vielen Dank
Keine Join-Notationen mischen. Der Motor kann die ANSI 89 oder die ANSI 92 nicht beide handhaben. Ich würde empfehlen, Ihre Join-Schreibweise zu ändern, um die interne Join-Notation zu verwenden. – xQbert
Warum mischen Sie Join-Typen? Sie sollten die 'JOIN'-Syntax nur mit INNER, LINKS, RECHTS usw. verwenden. Warum verwenden Sie Komma-getrennte Joins im alten Stil? – ollie
Warum erstellen Sie einen Alias für tab2.key (als remarksId) und verwenden ihn dann überhaupt nicht im Join? – SaggingRufus