Как сгруппировать «И» и «Или» в одном запросе, используя дозвуковой 2x - PullRequest
0 голосов
/ 20 декабря 2011

У меня возникли проблемы с преобразованием следующего

SELECT * FROM foo f WHERE 
(f.name = 'name' AND f.date = '1980/02/2001') 
OR 
(f.name = 'another name' AND f.date = '1990/02/2001') 

до

new Select().From(Foo.Schema.TableName)

.Where(Foo.Columns.Name).IsEqualTo('name')
.And(Foo.Columns.Date).IsEqualTo('1980/02/2001')

.Or(Foo.Columns.Name).IsEqualTo('another name')
.And(Foo.Columns.Date).IsEqualTo('1990/02/2001')

Как вы можете видеть, я не знаю метода, который может изолировать две группы "И" и поместить каждую из них в оператор "ИЛИ".

Буду очень признателен за вашу помощь в этом контексте.

1 Ответ

1 голос
/ 20 декабря 2011

Вам нужно обернуть детали в скобки, используя .AndExpression () и .CloseExpression ()

См. http://biasecurities.com/2008/07/complex-sql-conditional-statements-with-subsonic-2-1/ для примеров

...