我应该使用什么类型的连接?

时间:2013-03-06 23:19:31

标签: mysql sql database

我的加入知识很糟糕,我找不到正确的知识。我想加入TableA.userID和TableB.otherID上的两个表来匹配所需的输出。我没有在表格上设置任何外键或主键。我应该在这里使用什么?

TableA:
+--------+--------+---------+
| userID | field1 | field2  |
+--------+--------+---------+

TableB:
+--------+----------+---------+---------+---------+
| userID | otherID  | myData1 | myData2 | myData3 | 
+--------+----------+---------+---------+---------+

Desired Output:
+--------+----------+---------+---------+---------+--------+--------+
| userID | otherID  | myData1 | myData2 | myData3 | field1 | field2 |
+--------+----------+---------+---------+---------+--------+--------+

2 个答案:

答案 0 :(得分:2)

这应该这样做:

select a.userID, b.otherID, b.myData1, b.myData2, b.myData3, a.field1, a.field1
from TableA a
inner join TableB b
on a.userID = b.otherID

我建议在TableA.userID和TableB.otherID上添加索引。

答案 1 :(得分:1)

也许我误解了这个问题但是你不能只使用一个简单的INNER JOIN,假设USERID和OTHERID都是相同的数据类型,你不需要执行任何数据转换。

SELECT A.userID, B.otherID, B.myData, B.myData2, B.myData3, A.field1, A.field2
FROM   TableA as A
       INNER JOIN TableB as B
       ON A.UserId = B.OtherId