我有不同類型的訂單加入很多表有一個選擇
表orderA
IDA的一些表 - INT,idCustomer - INT,propertieA1 - 字符串,propertieA2 - 詮釋 ...
表orderB
idB前 - INT,idCustomer - INT,propertieB1 - 真正的,propertieB2 - INT ...
表orderC
IDC - INT,idCustomer - INT,propertieC1 - 字符串,propertieC2 - 串...
,並通知客戶的表
表客戶
idCustomer - int,name string,address - string ...
現在我想選擇特定客戶的所有訂單。我該怎麼做? 我認爲做一個選擇是這樣的:
SELECT * FROM customer
INNER JOIN orderA ON orderA.idCustomer = customer.idCustomer
INNER JOIN orderB ON orderB.idCustomer = customer.idCustomer
INNER JOIN orderC ON orderC.idCustomer = customer.idCustomer
WHERE customer.idCustomer = 235
但它給我所有的「orderA」與第一個「oredrB」,一個又全部「orderA」第二個「orderB」,等等。
因此,如果他有100個orderA,100個orderB和100個orderC - resulf是100 * 100 * 100行 - 300個行300萬行!
我該如何解決? (我可以改變表的結構,如果有必要)
感謝
你能分享一些樣本數據和你試圖得到的結果嗎? – Mureinik
在orderA客戶買了一個筆記本 - 字符串是公司的名稱和int是大小。在order B中,顧客購買了一張海報 - 實際尺寸以cm爲單位,而int則是指數。在oredrC他買了一本書 - 字符串是書的名字和作者的名字。結果將會是 - 零售商沒有。 235購買了5本筆記本電腦,12張海報和2本書,其中有詳細信息 –
@chmouelkalifa。 。 。你有一個荒謬的數據結構。一個'orders'表應該有一個'productid'參考另一個表,並提供有關產品的信息。產品可以具有常用信息,例如名稱和供應商以及專用列,如果它們未在數據庫中使用,則可以將其存儲爲JSON對象。 –