Второй запрос недействителен; запятая между ИМЯ и ОТ?
В любом случае: то, что вы описали, звучит как внешнее соединение , которое позволяет вам отображать «что-то», когда «ничего». Вот пример, основанный на схеме Скотта:
Есть 4 отдела. Обратите внимание на отдел DEPTNO = 40, так как там нет работающих сотрудников:
SQL> select * from dept where deptno = 40;
DEPTNO DNAME LOC
---------- -------------- -------------
40 OPERATIONS BOSTON
SQL> select count(*) from emp where deptno = 40;
COUNT(*)
----------
0
Для его отображения (при присоединении к таблице EMP) вы должны использовать внешнее объединение:
SQL> select d.deptno, d.dname, e.ename
2 from dept d left join emp e on e.deptno = d.deptno
3 order by d.deptno;
DEPTNO DNAME ENAME
---------- -------------- ----------
10 ACCOUNTING KING
10 ACCOUNTING CLARK
10 ACCOUNTING MILLER
20 RESEARCH FORD
20 RESEARCH SMITH
20 RESEARCH JONES
30 SALES JAMES
30 SALES TURNER
30 SALES MARTIN
30 SALES WARD
30 SALES ALLEN
30 SALES BLAKE
40 OPERATIONS --> this!
13 rows selected.
SQL>
Если бы не было внешнего соединения, вы бы даже не увидели последний ряд.
Теперь, как реализовать это в вашем коде, я бы не знал - у него даже нет какого-либо соединения, но должно , как вы упомянули «внешний ключ». У нас также нет описания таблиц. В любом случае, я надеюсь, что приведенный выше пример поможет вам в том, что вы делаете.