Узел запроса базы данных в knime
Я боролся с узлом "Запрос к базе данных".
Он показывает запрос по умолчанию как "SELECT * FROM #table# "
При вводе запроса отображается сообщение об ошибке: "Неверные настройки" Заполнитель представления базы данных # table # не подлежит замене.
Что на самом деле # table # представляет?
Как выполняется узел запроса базы данных?
Кто-нибудь может ответить, пожалуйста.
1 ответ
#table# представляет таблицу в порту соединения с входящей базой данных. Узел упаковывает это входящее соединение как подзапрос, например, если у вас есть соединение с таблицей "Имена" со столбцом "Фамилия", столбцом "Имя" и столбцом "Возраст", и вы ранее использовали узел фильтра строки базы данных для фильтрации по Surname ='Smith', тогда входящее соединение будет выглядеть примерно так:
SELECT * FROM (SELECT * FROM Names) table_1234567890 WHERE "Surname"='Smith'
Если вы хотите затем использовать узел запроса базы данных для поиска всех людей, Джон Смит, в возрасте 30 - 45 лет, то в диалоговом окне узла вы задаете
SELECT * FROM #table#
WHERE Forename='John' AND Age BETWEEN 30 AND 45
Теперь, если вы посмотрите на выходной порт на вкладке "Соединение", SQL будет выглядеть примерно так:
SELECT * FROM (SELECT * FROM (SELECT * FROM Names) table_1234567890 WHERE "Surname"='Smith') WHERE Forename='John' AND Age BETWEEN 30 AND 45