mySQL加入哪里?

Oli*_*all 2 php mysql database join where

是否可以将WHERE添加到mysql JOIN语句中,例如:

$result = mysql_query("SELECT * FROM site_products JOIN site_trans ON site_products.product_count = site_trans.trans_inventory WHERE site_products.product_id = site_trans.trans_product");
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Kai*_*aii 9

是的,这是可能的,但您的查询可能无法提供所需的结果:

SELECT * FROM site_products 
JOIN site_trans ON site_products.product_count = site_trans.trans_inventory 
WHERE site_products.product_id = site_trans.trans_product
Run Code Online (Sandbox Code Playgroud)

相反,你应该把它写成一个额外的JOIN条件,就像这样

SELECT * FROM site_products 
JOIN site_trans ON site_trans.trans_inventory = site_products.product_count
     AND site_trans.trans_product = site_products.product_id
Run Code Online (Sandbox Code Playgroud)

您还可以添加WHERE子句

SELECT * FROM site_products 
JOIN site_trans ON site_trans.trans_inventory = site_products.product_count
     AND site_trans.trans_product = site_products.product_id
WHERE site_products.product_id = 2
Run Code Online (Sandbox Code Playgroud)