加入两个表但没有结果

Posted

技术标签:

【中文标题】加入两个表但没有结果【英文标题】:Joining two tables but getting no result 【发布时间】:2015-08-13 19:35:41 【问题描述】:

表1

Move1 Move2
Fire Ice
Grass Fire
Ice Grass

表2

Move Power
Fire 40
Grass 30
Ice 20

我有这两个表,但是当我在 WAMPServer 中运行这个 SQL 语句时,我没有返回任何行:

SELECT *
FROM Table1, Table2
    INNER JOIN Table1 as Hello ON Hello.move1 = Table2.move
    INNER JOIN Table1 as Meow ON Meow.move2 = Table2.move

两个表都在同一个数据库下,所以我看不到我的错误。我希望它返回类似...

表1

Move1 Move2 Move Power Move Power
Fire Ice Fire 40 Ice 20
Grass Fire Grass 30 Fire 40
Ice Grass Ice 20 Grass 30

我哪里做错了?

【问题讨论】:

【参考方案1】:

你的代码有几个方面是错误的,你应该学习如何使用 SQL 连接(This 是一个很好的基本解释)

就解决您的问题而言,试试这个:

SELECT *
FROM table1 INNER JOIN table2 t2_m1
  ON table1.move1 = t2_m1.move INNER JOIN t2_m2
  ON table1.move2 = t2_m2.move

【讨论】:

【参考方案2】:

这应该可行:

select
  m.move1,
  m.move2,
  m1.move,
  m1.power,
  m2.move,
  m2.power
from
  table1 m
  join table2 m1 on m1.move = m.move1
  join table2 m2 on m2.move = m.move2

你可以在SQL Fiddle中测试这个

【讨论】:

以上是关于加入两个表但没有结果的主要内容,如果未能解决你的问题,请参考以下文章

您可以从位于单个结果集中的两个单独的表中提取数据吗? [不加入问题]

加入两个表并得到结果

加入两个普罗米修斯查询

如何在sql中选择2个表但不重复?

加入两个数据框和结果数据框在 PySpark 中包含不重复的项目?

Sql Inner 连接没有给出想要的结果