2013-05-14 160 views
0

我對MySQL和PHP非常陌生,我在兩張表之間的內部連接上掙扎。我正在構建一個讀取os商業數據庫的腳本,告訴我哪些產品目前處於訂單狀態。爲了使產品重新訂購,products_attributes表中的值設置爲'134',但它只讀取product_id而不讀取'products'表中的product_model。MySQL內連接兩張表

products_attributes(table name) 
    options_values_id 
    product_id 

products(table name) 
    product_id 
    product_model 

我要選擇有「134」在products_attributes表中的值,然後匹配兩個表中的product_ids從「產品」表得到product_model項目。我覺得代碼很容易,但由於某種原因,我正在努力構建查詢並顯示它。

回答

1

SELECT product_model FROM products as p,products_attributes as pa WHERE p.product_id = pa.product_id and pa.options_values_id = 134

SELECT p.product_model FROM products p INNER JOIN products_attributes as pa ON (p.product_id = pa.product_id) WHERE pa.options_values_id = 134

+0

謝謝!這對我有用! – 2013-05-14 19:19:34

0

我認爲你問的是如何獲得任何具有屬性的產品ID 134 在這種情況下,不需要JOIN

SELECT DISTINCT 
    product_id 
FROM 
    products_attributes 
WHERE 
    options_values_id = 134 

如果你想product_model那麼你可以形成JOIN這樣

SELECT DISTINCT 
    p.[product_model] 
FROM 
    products p 
JOIN 
    product_attributes pa 
    ON pa.[product_id] = p.[product_id] 
WHERE 
    pa.[options_values_id] = 134 

所以JOIN規定了兩個表是如何相互關聯的。一旦存在有效的JOIN,您可以在查詢的幾乎任何位置使用連接的表。

0

你可以嘗試以下方法:

select p.product_id, p.product_model 
from products p 
inner join products_attributes pa on pa.product_id = p.product_id 
where pa.options_values_id = '134'