SQL> select * from display_on;
ID NAME
2 History of Art
4 History of Art
1 Berserk Charity
5 Berserk Charity
SQL> выберите * из Art_Object;
ID YEAR TITLE DES A_NAME
1 1890 Old Man An old man in the dark van Gogh
2 1894 Cat White cat in black canvas van Gogh
3 1853 Monalisa Smiling woman Leonardo
4 1888 The meeting Two men talking Picaso
5 2017 The crimson stone Group of characters Omar
SQL>
И запрос, который они задают мне, - это (Показывать количество экспонатов, выставленных на данный момент для каждого исполнителя.), Которые выставляются, означает, что они находятся в таблице "display_on".
Просто JOIN
к двум столам с группой по и подсчитывайте:
SELECT
o1.A_Name,
COUNT(COALESCE(o2.ID, 0)) AS TotalNOfObjects
FROM Art_Object as o1
LEFT JOIN displayed_on AS o2 ON o1.ID = o2.ID
GROUP BY o1.A_Name;
| A_Name | TotalNOfObjects |
|----------|-----------------|
| Leonardo | 1 |
| Omar | 1 |
| Picaso | 1 |
| van Gogh | 2 |
Ответ:
select count(ID), A_NAME
from Art_Object
where ID in (select ID from displayed_on) group by (A_NAME);