Я мог сделать это в прошлом, используя sprintf() для создания инструкции sql на основе списка выбранных пользователем идентификаторов. Но теперь я хочу сделать оператор sql на основе выбранного пользователем списка нескольких полей из нескольких таблиц, и я в недоумении.
У меня есть база данных с несколькими таблицами:
TBL1
Date Program Name Type height width
5/22 E7 Square angle 5 5
5/22 H9 Circle smooth 4 4
9/9 E7 Circle smooth 7 7
10/10 R8 Triangle angle 10 5
TBL2
Date Program Name Value1 Value2
5/22 E7 Square 5 2.4
5/22 H9 Circle 10 43
9/9 E7 Circle 3.2 9
10/10 R8 Triangle 999 1
TBL3
Type 1 2 3
angle a g h
smooth b c d
И у меня есть кадр данных строк, которые я хочу получить из базы данных
df
Date Program Name
5/22 E7 Square
9/9 E7 Circle
10/10 R8 Triangle
Мне нужно динамически генерировать оператор SQL для сбора данных, которые мне нужны. Поэтому мне нужно будет получить дату, программу, имя, тип, значение1 и значение2 для каждой даты, программы и имени в моем файле df.
Я пытался выяснить, может ли sqlinterpolate справиться с этим, но похоже, что не может?
Я бы объединил TBL1 и TBL3 WHERE Type = Type, а затем присоединил бы VALUES из TBL2 только для строк, где Date, Program и Name соответствовали моему df.
Желаемый результат возврата sql:
Date Program Name Type 1 2 3 Value1 Value2
5/22 E7 Square angle a g h 5 2.4
9/9 E7 Circle smooth b c d 3.2 9
10/10 R8 Triangle angle a g h 999 1
Мысли?