Я пишу внешнее объединение в sql для поиска по нескольким таблицам, и код в основном работает, за исключением того, что мне нужно, чтобы он возвращал только ссылку на твиттер людей, так что если у них есть другие социальные сети в списке или вообще нет социальных сетей должен вернуть ноль, но сейчас он возвращает только твиттер для некоторых, но он возвращает ноль для некоторых имен, которые имеют твиттер. Я точно знаю, в чем проблема, я думаю, в операторах on есть и хорошо, если нет советника, он будет нулевым, а если у этого человека есть твиттер, то одно значение равно нулю, а другое - нет, поэтому оно возвращает ноль. Это единственная проблема, о которой я могу думать, но когда я использую или она возвращает слишком много результатов, а некоторые ошибаются. Поэтому я не знаю, как это исправить.
select fname, lname, rname, advisor_name, smaddr
from PERSON
join ADVISOR on PERSON.idnum = ADVISOR.student
left join DIGITAL on ADVISOR.student = DIGITAL.idnum and DIGITAL.smtype = 'twitter'
union
select fname,lname, rname, advisor_name, smaddr
from PERSON
left join ADVISOR on PERSON.idnum = ADVISOR.student
left join DIGITAL on ADVISOR.student = DIGITAL.idnum and
DIGITAL.smtype = 'twitter';
Текущий вывод:
+----------+---------+-------------------------+---------------+---------------------------+
| fname | lname | rname | advisor_name | smaddr |
+----------+---------+-------------------------+---------------+---------------------------+
| William | South | south.william@uky.edu | Abby Tanner | twitter.com/south.william |
| Terry | Smith | smith.terry@uky.edu | Nicole Taylor | twitter.com/smith.terry |
| Timothy | Clemens | clemens.timothy@uky.edu | NULL | NULL |
| Dan | North | north.dan@uky.edu | NULL | NULL |
| Courtney | Cox | NULL | NULL | NULL |
+----------+---------+-------------------------+---------------+---------------------------+
ЧЕЛОВЕК
+-------+---------+----------+-------------------------+---------+----------+
| idnum | lname | fname | rname | private | linkblue |
+-------+---------+----------+-------------------------+---------+----------+
| 22222 | Clemens | Timothy | clemens.timothy@uky.edu | 0 | tgcl258 |
| 40256 | South | William | south.william@uky.edu | 1 | weso123 |
| 55555 | North | Dan | north.dan@uky.edu | 0 | ddno453 |
| 56732 | Cox | Courtney | NULL | 1 | cco546 |
| 68123 | Smith | Terry | smith.terry@uky.edu | 1 | tlsm321 |
+-------+---------+----------+-------------------------+---------+----------+
ЦИФРОВОЙ
+-------+----------+------------------------------+
| idnum | smtype | smaddr |
+-------+----------+------------------------------+
| 22222 | facebook | facebook.com/clemons.timothy |
| 40256 | facebook | facebook.com/south.william |
| 68123 | facebook | facebook.com/smith.terry |
| 22222 | twitter | twitter.com/clemons.timothy |
| 40256 | twitter | twitter.com/south.william |
| 56732 | twitter | twitter.com/cox |
| 68123 | twitter | twitter.com/smith.terry |
+-------+----------+------------------------------+
ADVISOR
+---------+---------+---------------+---------------+-------+-------+
| student | advisor | student_name | advisor_name | sdate | edate |
+---------+---------+---------------+---------------+-------+-------+
| 40256 | 40256 | William South | Abby Tanner | NULL | NULL |
| 68123 | 68123 | Terry Smith | Nicole Taylor | NULL | NULL |
+---------+---------+---------------+---------------+-------+-------+
Ожидаемый результат
+----------+---------+-------------------------+---------------+---------------------------+
| fname | lname | rname | advisor_name | smaddr |
+----------+---------+-------------------------+---------------+---------------------------+
| William | South | south.william@uky.edu | Abby Tanner | twitter.com/south.william |
| Terry | Smith | smith.terry@uky.edu | Nicole Taylor | twitter.com/smith.terry |
| Timothy | Clemens | clemens.timothy@uky.edu | NULL | twitter.com/clemons.timothy |
| Dan | North | north.dan@uky.edu | NULL | NULL |
| Courtney | Cox | NULL | NULL | twitter.com/cox |
+----------+---------+-------------------------+---------------+---------------------------+