| From: | Geoff Winkless <pgsqladmin(at)geoff(dot)dj> |
|---|---|
| To: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>, Postgres General <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Proper relational database? |
| Date: | 2016-04-24 11:29:37 |
| Message-ID: | CAEzk6fcTC-MGmcG86ZRAfwuyy5X6uC8noDy1W+zAHE0RhLHtFw@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 24 April 2016 at 08:36, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> wrote:
> For example, say we want all students who have one or more exam today:
>
> SELECT s.student_id, s.name
> FROM student s
> WHERE EXISTS (SELECT 1
> FROM exam e
> WHERE e.student_id = s.student_id
> AND e.exam_date = CURRENT_DATE)
To be fair to SQL a far simpler version would be
SELECT DISTINCT student_id, name
FROM student
INNER JOIN exam USING(student_id)
WHERE exam_date=CURRENT_DATE;
To find students with no exam today (the other point of your argument):
SELECT student_id, name
FROM student
LEFT JOIN exam USING(student_id)
WHERE exam_date=CURRENT_DATE AND exam.student_id IS NULL;
Not really sure what the issue is with either of those. Once learned,
they're both very easy and straightforward.
Geoff
| From | Date | Subject | |
|---|---|---|---|
| Next Message | david | 2016-04-24 12:10:20 | Re: Proper relational database? |
| Previous Message | Tomas J Stehlik | 2016-04-24 10:54:09 | Re: Is it possible to recover the schema from the raw files? |