【发布时间】:2014-09-02 05:49:32
【问题描述】:
关于 SO 的两个问题似乎在询问等效 MySQL 查询的不同行为。在这两种情况下,都会对具有相同列名的表执行连接。 This poster 询问如何从结果中消除具有相同名称的重复列,this poster 询问如何实现结果中具有相同名称的列的重复。
为了测试这一点,我创建了玩具桌:
mysql> describe table_1;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| col_name | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
mysql> describe table_2;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| col_name | varchar(255) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+
我将值“值”插入到两个表中,并执行了这些连接,其中 JOIN_OP 是“连接”或“左连接”:
mysql> select * from table_1 as t1 JOIN_OP table_2 as t2 on t1.col_name = t2.col_name;
+----------+----------+
| col_name | col_name |
+----------+----------+
| value | value |
+----------+----------+
此结果与第一篇文章中的结果一致。这两个查询和两个结果有什么区别?为什么第二张海报没有看到任何重复?
【问题讨论】:
-
我刚刚重新创建了两个表,以包含 col_name 值的“唯一”约束,并且对于连接和左连接,我得到了相同的结果。你能澄清一下吗?