簡體   English   中英

MySQL內部連接兩個表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM