2016-11-28 99 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'