如何“使用”和“ON”的关键字在这段代码
SELECT table1.PrimaryKey(Some ID), table2.nameOfSomething FROM table1
INNER JOIN table2
这里有用的是部分我不明白:如何“使用”和“ON”的关键字在这段代码
USING(id)
这个ID是table1的外键和表2的主键
我真的不明白..
table1.ID值:
25行:
个row 1-5 = 1 , row 6-10 = 2 , row 11-15 = 3 , row 16-20 = 4 , row 21-25 = 5
table2.ID值:
5行:
row 1 = 1 , row 2 = 2 , row 3 = 3 , row 4 = 4 , row 5 = 5
我测试它,我得到不同的结果,没有它,是怎么来?
注:表1中包含的利益,表2包含了这些利益
随时要求以获取更多信息
回答:
| Table1: | Table2: | | id | id | table1_id |
| 1 | 1 3 |
| 2 | 2 2 |
| 3 | 3 1 |
如果用USING(id)
加入以上两个表一起,它将匹配行,其中在Table1
的id
值是相同的Table2
值id
...
SELECT * FROM table1 JOIN table2 USING(id) | id | id table1_id |
| 1 | 1 3 |
| 2 | 2 2 |
| 3 | 3 1 |
但是,在Table2
中的id
可能与id
在Table1
中无关。如果是这样的话,你可以使用ON
要具体你如何匹配记录在一起......
SELECT * FROM table1 JOIN table2 ON table1.id = table2.table1_id | id | id table1_id |
| 1 | 3 1 |
| 2 | 2 2 |
| 3 | 1 3 |
如果你指定什么都没有,你在一个表中的每个记录相匹配,对每记录在其他表...
SELECT * FROM table1 CROSS JOIN table2 | id | id table1_id |
| 1 | 1 3 |
| 1 | 2 2 |
| 1 | 3 1 |
| 2 | 1 3 |
| 2 | 2 2 |
| 2 | 3 1 |
| 3 | 1 3 |
| 3 | 2 2 |
| 3 | 3 1 |
回答:
使用指定应通过连接在两个表中列出的列进行联接类别。也就是说
SELECT t1.col1, t1.col2,
t2.col1
FROM table1 AS t1
INNER JOIN table2 AS t2
USING (col1)
相同
SELECT t1.col1, t1.col2,
t2.col1
FROM table1 AS t1
INNER JOIN table2 AS t2
ON t1.col1 = t2.col1
仅供参考,请参阅the MySql homepage。
回答:
USING
是相等连接和依赖的属性名剩余表之间相同的相同数据元素。
ON
更灵活:因为它要求您在两个表中明确指定属性名称,相同数据元素的属性名称可以相同,或者它们在表格之间可以不同。另外,它是一个theta-join,意味着连接类型可以是任何条件,包括相等。由于这种灵活性,ON
更为详细。
以上是 如何“使用”和“ON”的关键字在这段代码 的全部内容, 来源链接: utcz.com/qa/264614.html