Я запускаю следующий запрос в SQLite Management Studio (версия 2009 года), он работает нормально и возвращает желаемый набор результатов, но при выполнении из C # выдает следующую ошибку:
Нет такого столбцаQ0.IntegrationItemCategoryLevelID.
Похоже, что он не может "видеть" псевдонимы таблиц в подзапросах - я провел некоторые дополнительные тесты и не может видеть другие объединенные таблицы (например, Q0).Я попытался разделить его на два запроса, но это абсолютно убило производительность.У кого-нибудь есть хорошая идея, как это исправить?
SELECT DISTINCT Q1.IntegrationItemCategoryLevelID, A1.ShortDesc
FROM ((_Item I
INNER JOIN (_ItemToItemCategory Q0
INNER JOIN _ItemCategory A0 ON A0.IntegrationItemCategoryID = Q0.IntegrationItemCategoryID) ON Q0.IntegrationItemID = I.IntegrationItemID)
INNER JOIN (_ItemToItemCategory Q1
INNER JOIN _ItemCategory A1 ON A1.IntegrationItemCategoryID = Q1.IntegrationItemCategoryID) ON Q1.IntegrationItemID = I.IntegrationItemID)
WHERE Q0.IntegrationItemCategoryLevelID = 14 AND A0.ShortDesc = 'LG05'
AND Q1.IntegrationItemCategoryLevelID IN (9,4,5,7,10) ORDER BY Q1.IntegrationItemCategoryLevelID
Редактировать: убрать лишние скобки, тот же результат.
SELECT DISTINCT Q1.IntegrationItemCategoryLevelID, A1.ShortDesc
FROM Item I
INNER JOIN (ItemToItemCategory Q0
INNER JOIN ItemCategory A0 ON A0.IntegrationItemCategoryID = Q0.IntegrationItemCategoryID) ON Q0.IntegrationItemID = I.IntegrationItemID
INNER JOIN (ItemToItemCategory Q1
INNER JOIN ItemCategory A1 ON A1.IntegrationItemCategoryID = Q1.IntegrationItemCategoryID) ON Q1.IntegrationItemID = I.IntegrationItemID
WHERE Q0.IntegrationItemCategoryLevelID ='14' AND A0.ShortDesc = 'LG05'
AND Q1.IntegrationItemCategoryLevelID IN (9,4,5,7,10) ORDER BY Q1.IntegrationItemCategoryLevelID