Два вопроса о SO, похоже, спрашивают о поведении для эквивалентных запросов MySQL. В обоих случаях соединение выполняется в таблицах с одинаковыми именами столбцов. This poster спрашивает, как устранить дублированные столбцы с тем же именем из результата, и this poster спрашивает, как добиться дублирования столбцов с таким же именем в результате.MySQL: повторяющиеся столбцы с одинаковым именем в соединении
Чтобы проверить это, я создал игрушку таблицы:
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 |
+----------+----------+
Этот результат соответствует результатам в первом сообщении. В чем разница между двумя запросами и двумя результатами? Почему второй плакат не видит дублирования?
Я просто воссозданы обе таблицы включить «уникальный» ограничение для значений имя_столбца и я получаю тот же результат для обоих присоединиться и оставили присоединиться. Не могли бы вы уточнить, пожалуйста? – Schemer