как получить доступ к данным из двух таблиц без внешнего ключа в SQL Server 2005 - PullRequest
1 голос
/ 27 июня 2011

здесь у меня есть две таблицы, такие как сотрудник и одна таблица mobileoutbox, но эти две таблицы не связаны друг с другом, но я хочу получить доступ к данным из двух таблиц, я хочу сопоставить данные из двух таблиц и создать отчет. Как получить доступ к данным из две таблицы без внешнего ключа? структура таблиц:

employee table              mobileoutbox table
empid                            srno 
empname                          mobileno
empphoneno                       textmsg
empaddress                       texttype

Ответы [ 3 ]

0 голосов
/ 27 июня 2011
SELECT e.empid, e.empname, e.empphoneno, e.empaddress, m.srno, m.mobileno, m.textmsg, m.texttype
FROM employee e, mobileoutbox m
WHERE e.empphoneno = m.mobileno
0 голосов
/ 27 июня 2011

Возможно, вы путаете ограничение внешнего ключа со связями данных. Да, у вас может быть две таблицы с соответствием данных (то есть эти вероятные номера телефонов) и ограничением данных.

Если вам нужно запросить обе таблицы, относящиеся к столбцу с совпадающими данными, просто используйте INNER JOIN:

SELECT employee.*, mobileoutbox.*
FROM employee INNER JOIN mobileoutbox
ON employee.empphoneno = mobileoutbox.mobileno

Тогда вы можете сообщить обо всех сотрудниках, даже тех, у кого нет мобильного телефона. В этом случае вы можете использовать LEFT OUTER JOIN для этого:

SELECT employee.*, mobileoutbox.*
FROM employee LEFT OUTER JOIN mobileoutbox
ON employee.empphoneno = mobileoutbox.mobileno

Это вернет всех сотрудников, а не нулевые данные для полей mobileoutbox, если у сотрудника есть номер мобильного телефона, соответствующий номеру мобильного телефона в правой таблице.

0 голосов
/ 27 июня 2011
SELECT em.*, mo.* 
FROM employee em, mobileoutbox mo 
WHERE em.empphoneno = mo.mobileno

Скажите, если что-то не так.

О, и, если вам нужно "сопоставить" данные, тогда ДОЛЖЕН быть внешний ключ, какая-то перекрывающаяся информация между двумя таблицами, янадеюсь, что вы понимаете это много.Я использовал номер телефона в моем примере в качестве внешнего ключа, я не знаю, так ли это на самом деле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...