2016-12-02 6 views
0

私は良い方法があると信じています。私は検索して試しましたが見つかりませんでした。 私は3つのテーブルを一度に結合するときに、どのようにして列を合計できますか。

SELECT listing.*, users.username, review.rNumber 
    FROM listing, users,review 
WHERE users.uid=listing.cuid and listing.lid=review.lID 

(、提案してくださいまたはより良い方法)3つの、このようなテーブルを結合したいしかし、私は、私はsum(rNumber)のようにそれの合計を取得したいreview.rNumberたくありません。 1つのリストは、多くのレビューを持っている可能性があるので...ありがとう...

ここでは、私が

  1. にこのクエリでテーブルをリストからすべての値を達成したいものです。
  2. のみ関係が

    • users.uid = listing.cuidとlisting.lid = review.lID または
    • ある

レビューテーブルからユーザーテーブルからのレビューの

  • 合計をユーザ名
  • users.uid = listing.cuid = review.sellerID
  • ら私、私はテーブルを追加する必要がある場合は、動のを使用できることではなく、すべての上場の結果と参加のためにあなたが適切なグループを持つユーザーの合計を取得することができます。.. 感謝:)

    +1

    いいえ。あなたは 'SUM(review.rNumber)'を試しましたか? http://www.mysqltutorial.org/mysql-sum/ – JustOnUnderMillions

    +0

    ありがとう、私はそれを試みたが、review.sum(rNumber)のように間違ったやり方でエラーが発生している可能性があります。 – sadek

    +0

    助けてください私は、リストがレビューしているすべてのリストの天気をどうやって返すことができますか?この方法では、レビューを持つリストのみが選択されます。 は参加できますか?もう一度ありがとう.. – sadek

    答えて

    0

    を知っ

    SELECT listing.*, t.username, t.sum_rNumber 
    fFROM listing 
    INNER JOIN users ON users.uid=listing.cuid 
    INNER JOIN review ON listing.lid=review.lID 
    INNER JOIN (
         SELECT users.username as username, sum(review.rNumber) sum_rNumber 
         FROM listing 
         INNER JOIN users ON users.uid=listing.cuid 
         INNER JOIN review ON listing.lid=review.lID 
         GROUP BY users.username 
        ) t on users.username = t.username 
    
    に参加

    (明示的な結合sintaxを読みやすくする)

    +0

    あなたのコードは動作しませんでした。未知の列エラーが発生します。私はその後、この方法を試しました SELECTリスト。*、t.username FROM INNER JOINユーザーのリストからFR users from user.uid = listing.cuid INNER JOIN review ON list.lid = review.lID INNER JOIN(SELECT users.usernameをusername、 user.uid = listing.cuid INNER JOINのレビューではlisting.lid = review.lID GROUP BY users.username)t on users.username = t.username これを繰り返すと、結果 – sadek

    +1

    sum_rNumber .answerの代わりにsum_rnNumberが間違っています。回答が更新されました。各行に対して結果を繰り返し返します。適切なグループがないすべてのリスティング列(リスティング。*)が必要な場合は、本当に必要なアグリゲーション列これらの列を使用して関連する合計を計算し、メイン選択と結合します。 ..最終的に集計に必要な実際の列を表示するか、グループ内のすべての列を繰り返し、idで結合します。 – scaisEdge

    関連する問題