как оптимизировать несколько «ГДЕ (выбрать ....) = значение» из одной таблицы - PullRequest
3 голосов
/ 13 мая 2011

Мне сложно составить название темы. Но я могу показать пример:

WHERE   (SELECT [ID_Line] FROM [Event] WHERE [Event].[Name]  = [A].[Col]) = 2
AND     (SELECT [DataType] FROM [Event] WHERE [Event].[Name]  = [A].[Col]) = 2

Здесь я обрабатываю 2 запроса, когда мне действительно нужно что-то подобное:

WHERE   (SELECT [ID_Line],[DataType] FROM [Event] WHERE [Event].[Name]  = [A].[Col]) = 2,2

но SQL не работает с кортежами, поэтому я должен сделать Внутреннее соединение здесь?

Ответы [ 2 ]

7 голосов
/ 13 мая 2011

вы можете попробовать что-то вроде этого:

WHERE EXISTS (
    SELECT [ID_Line] FROM [Event] WHERE
        [Event].[Name]  = [A].[Col] AND
        [Event].[ID_Line] = 2 AND
        [Event].[DataType] = 2
)

Если вы предоставите больше информации о полном запросе и структуре вашей базы данных, может быть дан более точный ответ.Возможно, это не лучшее решение.

0 голосов
/ 13 мая 2011

Вы можете попробовать растопить поля, используя оператор плавления. В ORACLE PL / SQL вы используете || (двойная труба), например.

...