加入两个表但没有结果
Joining two tables but getting no result
表 1
Move1
Move2
Fire
Ice
Grass
Fire
Ice
Grass
表 2
Move
Power
Fire
40
Grass
30
Ice
20
我有这两个表,但是当我在 WAMPServer 中 运行 这个 SQL 语句时,我没有得到任何行 returned:
SELECT *
FROM Table1, Table2
INNER JOIN Table1 as Hello ON Hello.move1 = Table2.move
INNER JOIN Table1 as Meow ON Meow.move2 = Table2.move
两个表都在同一个数据库下,所以我看不到我的错误。我想要它 return 类似...
表 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
我哪里错了?
这应该有效:
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 连接(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
表 1
Move1 | Move2 |
---|---|
Fire | Ice |
Grass | Fire |
Ice | Grass |
表 2
Move | Power |
---|---|
Fire | 40 |
Grass | 30 |
Ice | 20 |
我有这两个表,但是当我在 WAMPServer 中 运行 这个 SQL 语句时,我没有得到任何行 returned:
SELECT *
FROM Table1, Table2
INNER JOIN Table1 as Hello ON Hello.move1 = Table2.move
INNER JOIN Table1 as Meow ON Meow.move2 = Table2.move
两个表都在同一个数据库下,所以我看不到我的错误。我想要它 return 类似...
表 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 |
我哪里错了?
这应该有效:
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 连接(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