Группировка условий при помощи круглых скобок
Листинг 4.34. Группировка условий при помощи круглых скобок
booktown=# SELECT * FROM books
booktown-# WHERE author_id = 1866
booktown-# AND subject_id = 15
booktown-# OR subject_id = 3;
id | title | autho_id | subject_id
4513 | Dune | 1866 | 15
1234 | The Velveteen Rabbit | 25041 | 3
(2 rows)
booktown=# SELECT * FROM books
booktown-# WHERE author_id = 1866
booktown-# AND (subject_id = 15
booktown-# OR subject_id = 3);
id | title | author_id | subject_id
4513 | Dune | 1866 | 15
(1 row)
В этом примере продемонстрированы две попытки выборки из базы данных booktown записей, у которых поле author_id равно 1866. Кроме того, поле subject_id должно быть равно либо 15, либо 3. Как видно из результатов первой команды, при перечислении всех трех условий без круглых скобок команда интерпретируется неправильно. Добавление круглых скобок приводит к тому, что вычисления в скобках производятся до проверки внешних условий.