SQL-为什么我的查询返回所有可能的排列?
我有一个包含以下数据的表SQL-为什么我的查询返回所有可能的排列?,sql,sql-server,left-join,Sql,Sql Server,Left Join,我有一个包含以下数据的表 ID Bid Outcome 1 2 1 2 2 2 我想查询带有左联接的表,以便将bid和outputID转换为可读的视图。当我应用连接时,SQL将返回所有可能的数据排列,而不仅仅是转换FK值 这可能是我的join 以下是代码、输出和预期结果: SELECT t1.ID, b.Name as Bid, o.Name as Outcome From table1 as t1 left join bid
ID Bid Outcome
1 2 1
2 2 2
我想查询带有左联接的表,以便将bid
和output
ID转换为可读的视图。当我应用连接时,SQL将返回所有可能的数据排列,而不仅仅是转换FK值
这可能是我的join
以下是代码、输出和预期结果:
SELECT
t1.ID,
b.Name as Bid,
o.Name as Outcome
From table1 as t1
left join bid as b on b.ID = b.ID
left join outcome as o on o.ID = o.ID
ID Bid Outcome
1 Lay Win
2 Lay Loss
当前结果:
1 Back Win
1 Back Loss
1 Lay Win
1 Lay Loss
2 Back Win
2 Back Loss
2 Lay Win
2 Lay Loss
预期结果:
SELECT
t1.ID,
b.Name as Bid,
o.Name as Outcome
From table1 as t1
left join bid as b on b.ID = b.ID
left join outcome as o on o.ID = o.ID
ID Bid Outcome
1 Lay Win
2 Lay Loss
正如松鼠所说,你们是在同一张桌子上,应该是这样
SELECT
t1.ID,
b.Name as Bid,
o.Name as Outcome
From table1 as t1
left join bid as b on b.ID = g.ID
left join outcome as o on o.ID = g.ID
anymede as g left join bid as b on b.ID=b.ID
您在同一列上留下了join。另一个join
请在代码问题中给出一个--cut&paste&runnable代码,包括作为代码输入的最小代表性示例;期望和实际输出(包括逐字记录错误消息);标签和版本;清晰的说明和解释。尽可能少地给出代码,即显示为OK的代码,并通过显示为not OK的代码进行扩展。(调试基础。)用于包含DBMS和DDL(包括约束和索引)的SQL,并以表格式作为代码输入。暂停总体目标的工作,将代码切掉到第一个表达式,没有给出您期望的内容,说出您期望的内容和原因。表gaymede
的ID
不太可能是引用其他表的列。gaymede
是主表<代码>投标&结果
是转换表-这对我来说是有效的@Squirrel,但这不是正确的方法吗?@Dallas您没有向我们展示所有3个表的模式,我不知道列名是什么,也无法真正注释查询是否正确。但是加入b.ID=g.ID
和o.ID=g.ID
是相当不寻常的。我认为应该是类似于b.ID=g.Bid
和o.ID=g.Outcome
这样做确实解决了我的问题,我加入了同一列上的表。尽管这个解决方案有效,但我还是会引用@Squirrel comment,因为它支持有意义的命名约定