Mysql外键
我想通过IdProduct在表客户和表产品之间建立链接 例如:Mysql外键,mysql,database,database-design,Mysql,Database,Database Design,我想通过IdProduct在表客户和表产品之间建立链接 例如: Create table customer( idcustomer INT not null, name Varchar(20), idproduct INT, ); create table Product( idproduct INT not null, nameProduct varchar(40) ); 我怎样才能像外键系统一样将两者连接在一起,因为当我选择一个客户时,我可以得到他的所有产品?这是一个
Create table customer(
idcustomer INT not null,
name Varchar(20),
idproduct INT,
);
create table Product(
idproduct INT not null,
nameProduct varchar(40)
);
我怎样才能像外键系统一样将两者连接在一起,因为当我选择一个客户时,我可以得到他的所有产品?这是一个关于数据库结构的问题 您想引入第三个表来解决客户和产品之间的多对多关系。它应该由
idcustomer
和idproduct
组成
然后,要获得给定客户的所有产品:
SELECT c.name, p.nameProduct
FROM Customer c
INNER JOIN CustomerProductXref cpx
ON c.idcustomer = cpx.idcustomer
INNER JOIN product p
ON cpx.idproduct = p.idproduct
WHERE c.idcustomer = 12345
您希望引入第三个表来解决客户和产品之间的多对多关系。它应该由
idcustomer
和idproduct
组成
然后,要获得给定客户的所有产品:
SELECT c.name, p.nameProduct
FROM Customer c
INNER JOIN CustomerProductXref cpx
ON c.idcustomer = cpx.idcustomer
INNER JOIN product p
ON cpx.idproduct = p.idproduct
WHERE c.idcustomer = 12345
下面是如何创建外键约束(忽略Joe正确建议的基数问题): 按如下方式获取您的数据:
SELECT * FROM Product AS P
INNER JOIN Customer AS C ON C.idproduct = P.idproduct
WHERE C.idcustomer = 1
下面是如何创建外键约束(忽略Joe正确建议的基数问题): 按如下方式获取您的数据:
SELECT * FROM Product AS P
INNER JOIN Customer AS C ON C.idproduct = P.idproduct
WHERE C.idcustomer = 1
在mysql中,外键是一种特殊类型的约束。它最好与表一起创建,但也可以在之后添加。在这种情况下,可以将约束定义为: 更改表格客户 添加外键(idproduct) 参考产品(idproduct) (注意,您必须使用InnoDB引擎来利用mysql中的FK。更多 但是,创建联接不需要FK,这是在SELECT中链接表的方式-
select c.idcustomer, c.name, p.nameproduct
from customer c
join Product p on p.idproduct=c.idproduct;
在mysql中,外键是一种特殊类型的约束。它最好与表一起创建,但也可以在之后添加。在这种情况下,您可以将约束定义为: 更改表格客户 添加外键(idproduct) 参考产品(idproduct) (注意,您必须使用InnoDB引擎来利用mysql中的FK。更多 但是,创建联接不需要FK,这是在SELECT中链接表的方式-
select c.idcustomer, c.name, p.nameproduct
from customer c
join Product p on p.idproduct=c.idproduct;
我知道,这只是一个纯粹的例子。我只想加入表格,当我选择一个客户时,我可以拿他的产品。我知道,这只是一个纯粹的例子。我只想加入表格,当我选择一个客户时,我可以拿他的产品。当我做一个选择:从产品中选择nameProduct,其中idcustomer=1和Product。idproduct=customer.idproduct它将工作??当我执行一个select时:从产品中选择名称Product,其中idcustomer=1和Product.idproduct=customer.idproduct它将工作??