Php 在一个查询中从多个表中提取数据并将数据匹配在一起

Php 在一个查询中从多个表中提取数据并将数据匹配在一起,php,sql,Php,Sql,好的,我需要查询两个sql表,它们是product和product_to_category 产品看起来像 产品类别看起来像 我试图查询这两个表,以便可以选择某个类别编号中的所有表,即产品类别中的所有表,也可以选择状态为1的所有表,以确定它们是否处于活动状态。我试图在一个查询中实现这一点,到目前为止,我的查询类似于下面的查询,问题是我不确定如何将产品id匹配在一起,以实现我想要的效果。有人能告诉我怎么做吗 mysql_query("SELECT * FROM product,product_to_

好的,我需要查询两个sql表,它们是product和product_to_category

产品看起来像

产品类别看起来像

我试图查询这两个表,以便可以选择某个类别编号中的所有表,即产品类别中的所有表,也可以选择状态为1的所有表,以确定它们是否处于活动状态。我试图在一个查询中实现这一点,到目前为止,我的查询类似于下面的查询,问题是我不确定如何将产品id匹配在一起,以实现我想要的效果。有人能告诉我怎么做吗

mysql_query("SELECT * FROM product,product_to_category WHERE product.status = 1 AND product_to_category.category_id = 35 ORDER BY product.sort_order ASC")
试试这个:

mysql\u querySELECT*从product.product\u id=product\u上的product JOIN product\u to\u category到product.product\u id,其中product.status=1,product\u to\u category.category\u id=35 ORDER BY product.sort\u ORDER ASC

您应该使用连接

选择* 来自产品p 内部连接产品到类别pc 在p.productid=pc.productid上 其中p.status=1 和pc.category_id=35 按p.sort\u ORDER ASC订购

由于您不熟悉联接,我建议您阅读以下内容:

SQL联接的直观说明:

这应该能奏效。确保查看联接及其不同类型

尝试:

SELECT * FROM product
INNER JOIN product_to_category ON (product.product_id = product_to_category.product_id)
WHERE 
     product_to_category.category_id = 35
     AND
     product.status = 1

尝试以下查询。这更容易理解

SELECT * FROM 
    product a
    JOIN product_to_category b ON a.product_id = b.product_id
WHERE 
    a.stock_status_id = 1
    AND b.category_id = 35;

谢谢,这帮了大忙,我以前从来没有听说过JOIN。谢谢,这帮了大忙,我以前从来没有听说过JOIN。既然你以前没有听说过JOIN,我建议用它来帮助学习。谢谢,这帮了大忙,我以前从来没有听说过JOIN。
SELECT * FROM 
    product a
    JOIN product_to_category b ON a.product_id = b.product_id
WHERE 
    a.stock_status_id = 1
    AND b.category_id = 35;