2016-11-28 204 views
1

我有這樣一段代碼:SQL連接表

SELECT * 
FROM products 
JOIN productsInventory 
WHERE sku = '$psku' AND sell_price = '$sell_price' 

在哪裏,有一個名爲products & productsInventorysku & sell_price兩個表分別是其列名。這是寫入sql的正確方法嗎?

+0

如果你要在兩個表之間使用'JOIN',那麼你需要在''一樣ON products.id = productsInventory.product_id' – Viki888

+0

@ ON'條件指定公共列Viki888這取決於DB和在每個數據庫中不是強制性的。 – Ubercool

+0

你正在使用哪個數據庫? – Ubercool

回答

0

通常它看起來是這樣的:

SELECT * FROM products AS l 
JOIN productsInventory AS r 
ON l.sku = r.sku 
AND l.sell_price = r.sell_price; 

上的SQL方言Dpending您正在使用的可能會有所不同。

+0

這裏,sku是'產品'表中的一列,而sell_price是'productsInventory'表中的一列。 – Saud

+0

那麼對於一個連接,您至少需要一個可以連接兩個表的列。因此,例如,在您的情況下,產品ID可能是庫存表中的外鍵。 – molig

1

首先您需要了解在sql中連接的工作原理。爲此,您可以參考 http://www.dofactory.com/sql/join
您應該在on子句中指定要在哪個列中連接兩個表。
products表中您的代碼公用列和productsInventory表應該在連接的on子句中指定。

0

您忘記使用ON聲明來指定要使用哪些列加入表。爲了連接表,通常需要有兩個表都有共同的列。

SELECT * FROM products 
JOIN productsInventory on products.<CommonColumn> = productsInventory.<CommonColumn> 
WHERE sku = '$psku' AND sell_price = '$sell_price'