簡體   English   中英

mysql,其中一個條件條件所在的表與另一個條件條件不同的表聯接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM