MySQL内连接有两个表

时间:2013-05-14 15:21:28

标签: php mysql join inner-join

我是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。我觉得代码很容易,但由于某种原因,我正在努力构建查询并显示它。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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,您就可以在查询中的任何位置使用联接表。

答案 2 :(得分: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'