Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 在SQLServer2005中如何在没有外键的情况下访问两个表中的数据_Sql Server 2005 - Fatal编程技术网

Sql server 2005 在SQLServer2005中如何在没有外键的情况下访问两个表中的数据

Sql server 2005 在SQLServer2005中如何在没有外键的情况下访问两个表中的数据,sql-server-2005,Sql Server 2005,这里我有两个表,比如employee表和一个mobileoutbox表,但这两个表彼此没有连接,但我想从两个表中访问数据我想从两个表中匹配数据并生成报告。如何在没有外键的情况下从两个表中访问数据? 表结构: employee table mobileoutbox table empid srno empname mobileno empphoneno

这里我有两个表,比如employee表和一个mobileoutbox表,但这两个表彼此没有连接,但我想从两个表中访问数据我想从两个表中匹配数据并生成报告。如何在没有外键的情况下从两个表中访问数据? 表结构:

employee table              mobileoutbox table
empid                            srno 
empname                          mobileno
empphoneno                       textmsg
empaddress                       texttype
如果有什么不确定的,请告诉我


哦,如果您需要“匹配”数据,那么必须有一个外键,两个表之间的某种重叠信息,我希望您能理解这一点。我在我的示例中使用了电话号码作为外键,我不知道这是否是事实。

可能您将外键约束与数据关系混淆了。是的,您可能有两个具有数据匹配(即这些可能的电话号码)和数据约束的表

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
如果需要查询与列相关的两个表以及匹配的数据,只需使用内部联接:

SELECT employee.*, mobileoutbox.*
FROM employee INNER JOIN mobileoutbox
ON employee.empphoneno = mobileoutbox.mobileno
然后,您可能要报告所有员工,甚至是那些没有手机的员工。在这种情况下,可以使用左外部联接来执行此操作:

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

如果员工的手机号码与右表中的手机号码匹配,则此操作将返回mobileoutbox字段的所有员工和非空数据。

empphoneno和mobileno将是相同的???似乎您正在尝试关联两个没有任何关系的表?您能否显示示例数据和预期输出?我假设
emphoneno
mobileno
可能是相关的,但是如果你在问题中陈述这一点会有所帮助。这在大多数方言中都不是有效的SQL,更不用说SQL Server了。现在你已经编辑过了,当然可以了,所以不要太聪明。如果你指的是双等号,那么是的。对不起,写得太草率了。祝您有个美好的一天。
SELECT employee.*, mobileoutbox.*
FROM employee LEFT OUTER JOIN mobileoutbox
ON employee.empphoneno = mobileoutbox.mobileno