Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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内部连接脚本问题_Sql_Sql Server - Fatal编程技术网

SQL内部连接脚本问题

SQL内部连接脚本问题,sql,sql-server,Sql,Sql Server,我正在学习SQL,并且在内部连接方面遇到了问题。我有Trader表,表中有Trader\u id,contact\u id和上次订购的和contact表,表中有Trader\u id和contact\u id 当我在下面的脚本中运行时,trader\u id和contact\u id与我预期的trader\u id、contact\u id(与trader\u id不同的值)和上次订购日期完全相同。 脚本: 我缺少什么?试试这个: select trader.trader_id ,con

我正在学习SQL,并且在内部连接方面遇到了问题。我有
Trader
表,表中有
Trader\u id
contact\u id
上次订购的
contact
表,表中有
Trader\u id
contact\u id

当我在下面的脚本中运行时,
trader\u id
contact\u id
与我预期的
trader\u id
contact\u id
(与
trader\u id
不同的值)和
上次订购日期
完全相同。 脚本:

我缺少什么?

试试这个:

select  trader.trader_id
   ,contact.contact_id
   ,last_ordered 
from trader  
inner join contact on trader.trader_id=contact.trader_id
select  trader.trader_id
       ,contact.contact_id
       ,last_ordered 
from trader trader  
join contact contact on trader.trader_id=contact.trader_id -- (trader_id not contact_id)
试试这个:

select  trader.trader_id
       ,contact.contact_id
       ,last_ordered 
from trader trader  
join contact contact on trader.trader_id=contact.trader_id -- (trader_id not contact_id)

与原来的问题有什么不同?你没有说什么不对,你只是加入了。我把它改为internaljoinjoin是internaljoinhmm的快捷方式/别名。联接和内部联接具有相同的效果。但是对于两个表上的联接,您应该更改为trader_id。与原始问题有什么不同?你没有说什么不对,你只是加入了。我把它改为internaljoinjoin是internaljoinhmm的快捷方式/别名。联接和内部联接具有相同的效果。但是,对于两个表上的联接,您应该更改为trader\u id。您应该在相同的列名称上联接。您说过“当我在下面运行脚本时,trader\u id和contact\u id与我预期的trader\u id、contact\u id(与trader\u id不同的值)和最后订购日期完全相同。”现在检查filter-trader.trader\u id=contact.contact\u id。这确保它返回contact id等于trader id的结果。稍微绕道…如果要使用别名,您确实应该使用与表名不同的名称,或者别名的点丢失。您应该在相同的列名称上连接..您可以已经说过“当我运行下面的脚本时,交易员id和联系人id与我预期的交易员id、联系人id(与交易员id的值不同)和最后订购日期完全相同。”现在检查过滤器-trader.trader\u id=contact.contact\u id。这确保它返回联系人id等于trader id的结果。稍微绕道……如果要使用别名,您确实应该使用与表名不同的名称,否则别名点将丢失。