[英]MySQL inner join with two tables
我是MySQL和PHP的新手,我在兩個表之間的內部聯接方面苦苦掙扎。 我正在構建一個腳本,該腳本讀取os Commerce數據庫並告訴我當前有哪些產品待定。 為了將產品拖延交貨,products_attributes表中的值設置為“ 134”,但是它僅讀取product_id,而不讀取“ products”表中的product_model。
products_attributes(table name)
options_values_id
product_id
products(table name)
product_id
product_model
我想在products_attributes表中選擇值為“ 134”的項目,然后從兩個表中匹配product_id,以從“ products”表中獲取product_model。 我覺得代碼很容易,但是由於某種原因,我在如何構造查詢和顯示查詢方面苦苦掙扎。
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
我認為您在問如何獲取具有134屬性的任何產品的產品ID。在這種情況下,不需要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
,就可以在查詢中的幾乎任何地方使用聯接的表。
您可以嘗試以下方法:
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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.