[英]mysql, 1 table with where condition joined with another table with different where condition
首先,我對標題中的粗略術語表示歉意。
<? if ($thisguy == "noob") { echo("bear with me"); } ?>
我有兩個表:
一個“ 評分 ”(行:產品,用戶,評分,添加),其中user = $thisuser[id]
,
還有一個“ 產品 ”(ID,名稱),其中product.id = rating.product
。
我已經廣泛地閱讀了join(內,外,左,右...),而我像卡盤一樣被卡住了。
我需要數組中的所有信息,其中Product.id = ratings.product and user = $thisuser[id]
。
我正在使用這個:
$result = mysql_query("SELECT ratings.product, ratings.user, ratings.rating, ratings.added FROM ratings INNER JOIN products ON products.id = ratings.product AND user = $THISUSER[id]");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$product = $row['product'];
$user = $row['user'];
$rating = $row['rating'];
$added = $row['added'];
$pid = $row['id'];
$pname = $row['name'];
}
print("$user, $rating, $added, $THISUSER[id], $pname, $pid"); }
這將在評級表中產生所有結果(但僅產生一個實例),而在產品表中什么也沒有產生...我已經嘗試了100種不同的方法,但沒有成功。 任何幫助將不勝感激! 放開我 *畏縮
您沒有從產品表中選擇任何列,請像這樣更改您的選擇
$result = mysql_query("SELECT ratings.product, ratings.user, ratings.rating, ratings.added, products.id, products.name FROM ratings INNER JOIN products ON products.id = ratings.product where ratings.user = $THISUSER[id]");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$product = $row['product'];
$user = $row['user'];
$rating = $row['rating'];
$added = $row['added'];
$pid = $row['id'];
$pname = $row['name'];
}
print("$user, $rating, $added, $THISUSER[id], $pname, $pid"); }
SELECT ratings.product, ratings.user, ratings.rating, ratings.added FROM ratings INNER JOIN products ON products.id = ratings.product WHERE ratings.user = $THISUSER[id]
嘗試此操作,在最后一個子句中使用WHERE代替AND。
確保您在查詢中提供的數據庫名稱正確,因為您的描述所包含的表名稱與所編寫的代碼不同。
注意:您僅選擇了評級表,而沒有選擇產品表,在我的代碼中,我從產品表中選擇了產品名稱。
您必須將ON
Condition和WHERE
一起使用,以便在使用JOIN query
時非常理想。 由於這樣會產生Join QUERY的語法。
您可以在“打開”中提供比較值,在“ WHERE”中提供檢查值,以便數據看起來像您期望的那樣。
在您的情況下, JOIN QUERY
將看起來像這樣。
$query = "SELECT rating.product,rating.user,rating.rating,product.name FROM rating INNER JOIN products ON products.id = rating.product WHERE rating.user ='".$thisuser['id']."'";
確保$ THISUSER [id]包含有效值。
嘗試以這種方式分配var
$acc_user = $THISUSER[id];
"SELECT ratings.product, ratings.user, ratings.rating, ratings.added
FROM ratings
INNER JOIN products ON (products.id = ratings.product
AND ratings.user = $acc_user) "
您可以將on子句與一起使用,並最終放入()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.