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