2016-12-03 3 views
0

私は非常に奇妙な問題が必要です。私はあなたが素晴らしい人たちがこの問題を楽しむことを願っています(またはそれはあなたにとって簡単な仕事かもしれません:))。ここで 3つのテーブルとANDを使用し、左結合/内結合を使用することは可能ですか?

は、私は今、このクエリでは、私は追加のフィルタを使用したい3つのテーブル
select listing.* 
    , sum(review.rNumber) as nor 
    , count(review.rNumber) as total 
    , users.username from listing 
    where 
    left join review on listing.lid=review.lID 
    inner join users on users.uid=listing.cuid 
    group by listing.lid 

から値を返すために使用していたクエリです。 listing tableからすべての値を戻していますが、すべての値を返すようにします WHERE cat='Hair' or something

このクエリーのどこに手がかりを挿入するのかわかりません。 ありがとう

+0

はラインであなたの場所、あなたのグループの前に置く:あなたは、それは後に、あなたの代わりに「持つ」を使用したい場合は

select listing.*, sum(review.rNumber) as nor, count(review.rNumber) as total, users.username from listing left join review on listing.lid=review.lID inner join users on users.uid=listing.cuid where cat='Hair' group by listing.lid 

+0

あなたはあなたの条件をあまりにも –

+0

のように置く必要があります "ここでcat = 'Hair' group by listing.lid" ?? – sadek

答えて

2

あなたはフィルターがして、グループの前に適用する場合:

select listing.*, sum(review.rNumber) as nor, count(review.rNumber) as total, users.username from listing 
left join review on listing.lid=review.lID 
inner join users on users.uid=listing.cuid 
group by listing.lid 
having cat='Hair' 
+0

SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、適切な構文を使用して近くの 'listing.lid = review.lID内のユーザーに参加するusers.uid = listing.cuid' 2行目のレビューに参加してください – sadek

+0

間違いをコピーしました既に指定されたクエリに含まれていました。それを私が直した。 –

+0

ありがとうございます、しかし私は混乱しています、私は前にこの方法を試しましたが、今まで働いたことはありません。 – sadek

1

あなたのお問い合わせは以下の通りです。あなたは、でグループを使用する場合は、すべての

select listing.lid 
    , sum(review.rNumber) as nor 
    , count(review.rNumber) as total 
    , users.username from listing 
    left join review on listing.lid=review.lID 
    inner join users on users.uid=listing.cuid 
    where 
    cat='Hair 
    group by listing.lid,users.username 

まず、あなたは、

  • どこ
  • グループから
  • 秒単位で

    • 選択を実行する必要があり集計関数またはグループ化されていない列は選択できません。したがって、*のリストは行えません。その値が必要な場合は、それらを両方のグループに入れて選択します。

    +0

    完璧な、ちょっとした混乱、どうすればリストからすべての値を返すことができますか?しかし、私はあなたの「あなたが価値を必要とするならば、それらを両方のグループに入れて選んでください」とは言いませんでした。 – sadek

    関連する問題