Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 它是SQL中的联接吗?_Mysql_Sql_Sql Server_Select_Join - Fatal编程技术网

Mysql 它是SQL中的联接吗?

Mysql 它是SQL中的联接吗?,mysql,sql,sql-server,select,join,Mysql,Sql,Sql Server,Select,Join,我有三张桌子。 第一个表格是: Orders ====== Ordernumber PK CartID Field1 .... OrderDetails ============ Ordernumber PK SKU FK (with InventorySuppliers localSKU field) Field-a ..... InventorySuppliers ================= SupplierID PK LocalSKU FK (O

我有三张桌子。
第一个表格是:

Orders
======
Ordernumber  PK
CartID 
Field1
....
OrderDetails
============
Ordernumber PK
SKU         FK (with InventorySuppliers localSKU field)
Field-a
.....
InventorySuppliers
=================
SupplierID   PK
LocalSKU     FK (Orderdetails table with 'SKU')
Field-x
....
第二个表格是:

Orders
======
Ordernumber  PK
CartID 
Field1
....
OrderDetails
============
Ordernumber PK
SKU         FK (with InventorySuppliers localSKU field)
Field-a
.....
InventorySuppliers
=================
SupplierID   PK
LocalSKU     FK (Orderdetails table with 'SKU')
Field-x
....
第三个表是:

Orders
======
Ordernumber  PK
CartID 
Field1
....
OrderDetails
============
Ordernumber PK
SKU         FK (with InventorySuppliers localSKU field)
Field-a
.....
InventorySuppliers
=================
SupplierID   PK
LocalSKU     FK (Orderdetails table with 'SKU')
Field-x
....
我想做的事情是这样的:

SELECT * 
FROM   ORDERS 
WHERE  ORDERS.CARTID = 11 
       AND INVENTORYSUPPLIER.SUPPLIERID = 155 
我的问题是,此查询中使用的两个表之间没有直接关系。

如何编写此查询

是的,您需要加入

SELECT o.*
FROM orders o
JOIN orderdetails od ON o.ordernumber = od.ordernumber
JOIN inventorySuppliers is ON is.localSKU = od.SKU
WHERE o.cartID = 11
AND is.supplierID = 155

由于
订单
库存供应商
表记录之间没有直接关系,因此必须使用第三个表(
订单详细信息
)将它们连接在一起。

您的模式设计存在致命缺陷,因为两个不同的供应商可能对不同的产品使用相同的sku。您的模式无法知道sku所指的库存供应商中的哪个记录


在使用此sql执行任何其他操作之前,您需要更改架构以将supplierID包含在订单详细信息记录中。

对不起,我的错,这是订单表中的问题……但这不是我的。我正在尝试通过名为STONE EDGE的Amazon manager创建一些脚本,架构是他们的…:(