mysql在数据库中检索同一记录有很多关系
我有一个联系人表和一个代码表。联系人有许多代码:mysql在数据库中检索同一记录有很多关系,mysql,Mysql,我有一个联系人表和一个代码表。联系人有许多代码: mysql> DESCRIBE contacts; +------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------------+------
mysql> DESCRIBE contacts;
+------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| first_name | varchar(255) | YES | | NULL | |
| last_name | varchar(255) | YES | | NULL | |
| email | varchar(255) | YES | | NULL |
mysql> DESCRIBE codes;
+-----------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| code | varchar(255) | YES | | NULL | |
| contact_id | int(11) | YES | | NULL | |
我可以检索所有具有代码的联系人:
SELECT * FROM `contacts`
INNER JOIN `classification_codes`
ON `contacts`.`id` = `codes`.`contact_id`;
不幸的是,即使联系人有许多代码,这也只会返回唯一的联系人记录。例如,如果联系人有两个代码,我想检索同一个联系人记录两次,每个记录分别与每个代码关联。如何在mysql中实现这一点?更改表的顺序以获取所有具有联系人的代码。这应该可以做到这一点,只需更改表格顺序:
SELECT * FROM `classification_codes`
INNER JOIN `contacts`
ON `contacts`.`id` = `codes`.`contact_id`;