需要帮助合并三个表外键

时间:2017-03-13 03:15:14

标签: mysql sql phpmyadmin mariadb

我创建了三个这样的表,

1

newImage.className = 'my-class-name';

2。

CREATE TABLE person (
id int NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
age int,
PRIMARY KEY (id)
);

第3

CREATE TABLE address (
id int NOT NULL AUTO_INCREMENT,
city varchar(50) NOT NULL,
post_code int NOT NULL,
person_id int NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (person_id) REFERENCES person(id)
);

现在在表格中我有一些像这样的信息:

CREATE TABLE subjects (
id int NOT NULL AUTO_INCREMENT,
subjects_s varchar(50) NOT NULL,
address_id int NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (address_id) REFERENCES address(id)
);

地址

+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  1 | Sohan  |   17 |
|  2 | Farhan |   18 |
+----+--------+------+

受试者

+----+-------+-----------+-----------+
| id | city  | post_code | person_id |
+----+-------+-----------+-----------+
|  1 | Tongi |      1711 |         1 |
|  2 | Dhaka |      1230 |         2 |
+----+-------+-----------+-----------+

现在我想一起显示所有这些数据。我怎样才能做到这一点?请帮忙!

1 个答案:

答案 0 :(得分:1)

您应该能够使用SQL join语句来组合这些语句。

MySQL join documentation中详细说明了语法。

使用您的表格,您的查询应如下所示:

SELECT person.*, address.*, subjects.* 
  FROM person 
    JOIN address ON person.id = address.person_id 
    JOIN subjects ON address.id = subjects.address_id

请注意,此示例使用内部联接,这可能不是正确的联接类型,具体取决于表中的数据。我建议您阅读上面链接的文档以获得进一步的指导。