В настоящее время я пытаюсь создать новую таблицу на основе запроса внутреннего объединения двух таблиц с тремя условиями. Однако в окне «Ошибка SQL» всегда указывается, что столбцы не существуют, даже если они явно существуют.
Так вот что должно произойти, Внутреннее соединение должно произойти, когда два конкретных значения равны друг другу в таблице столбцов и где третье значение имеет сходство.
Это потому, что хотя Plotletter в первой таблице на самом деле только одна буква, как, скажем, для A.
Приложение может быть написано как ABCD.
Я уже пытался уточнить, что поля относятся к нужной таблице, следуя предложению, но ошибка по-прежнему возникает.
CREATE TABLE testschema.FinalPlantenpaspoort
AS
SELECT PrimaryIndex, jaarpr, proefcode, plotleter, plotcijfer, plot, X, Y
FROM testschema.plantenpaspoortsjabloon
JOIN testschema.weegschaalproeven
ON plantenpaspoortsjabloon.proefcode = weegschaalproeven.Intern_Proef_Nr
AND plantenpaspoortsjabloon.plotcijfer = weegschaalproeven.Objectnr
WHERE plantenpaspoortsjabloon.plotletter LIKE weegschaalproeven.Application
;
Это ошибка и предложение, которое они дают мне, но не повезло.
ERROR: column weegschaalproeven.intern_proef_nr does not exist
LINE 5: ON plantenpaspoortsjabloon.proefcode = weegschaalproeven.Int...
^
HINT: Perhaps you meant to reference the column "weegschaalproeven.Intern_Proef_Nr".
SQL state: 42703
Character: 237
**
Редактировать 2/07/2019: проблема была решена, но выбрано 0 записей.
**
Хорошо, проблема, кажется, решена, но есть новый тип проблем, в то время как код работает, 0 записей выбраны из-за JOIN. И это не должно быть так. Я знаю, что есть соответствующие записи, потому что это тест, в котором я убедился, что таблицы шейп-файлов в QGIS содержат соответствующие данные.
Create TABLE testschema.finalplantenpaspoort AS
SELECT jaarpr, proefcodet, plotletter, plotcijfer, plot, X, Y
FROM testschema.plantenpaspoortsjabloon
JOIN testschema.weegschaalproeven
ON plantenpaspoortsjabloon.proefcodet = weegschaalproeven.intern_proef_nr AND plantenpaspoortsjabloon.plotcijfer = weegschaalproeven.objectnr
WHERE plantenpaspoortsjabloon.plotletter LIKE weegschaalproeven.application
;
**SELECT 0**
Query returned successfully in 72 msec.