SQL内部连接脚本问题
我正在学习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
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的结果。稍微绕道……如果要使用别名,您确实应该使用与表名不同的名称,否则别名点将丢失。