0

我对 MySQL 和 PHP 很陌生,我在两个表之间的内部连接上苦苦挣扎。我正在构建一个脚本,该脚本读取 os 商务数据库并告诉我哪些产品当前处于延期交货状态。为了使产品延期交货,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_ids 以从“products”表中获取 product_model。我觉得代码很简单,但出于某种原因,我正在努力研究如何构建查询并显示它。

4

3 回答 3

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

于 2013-05-14T15:28:22.650 回答
0

我认为您是在问如何获取任何具有 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,您几乎可以在查询中的任何地方使用连接表。

于 2013-05-14T15:23:46.940 回答
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'
于 2013-05-14T15:26:42.080 回答