2017-09-23 10 views
-1

広告情報を含むテーブルと、広告のビューを含むテーブルがあります。ビュー付きテーブルには、ipと広告IDが含まれ、広告がリクエストされるたびに更新されます。異なるテーブルのビューを広告選択クエリに含める

SELECT ip FROM view WHERE adId = ?; // I only get the count 
SELECT DISTINCT ip FROM view WHERE adId = ?; // I only get the count 
SELECT * FROM advertisements; 

今のところ、3つすべてのクエリを実行してレスポンスを生成します。それらを1つにまとめる方法はありますか?

+2

サンプルデータと望ましい結果は、1000語以上の価値があります。 –

+1

私はゴードンとここにいます。私たちは何千もの言葉を必要としません。私たちは、あなたの問題の最小の例であるスキーマといくつかのサンプルデータが必要です。 – tadman

+0

私は質問を簡略化しました。 –

答えて

1

広告テーブルにもadId列または対応する列がある場合、そのキーを使用して2つのテーブルを接続できます。

SELECT DISTINCT v.ip, 
     a.* 
    FROM `view` v 
    JOIN advertisement a 
    ON v.adId = a.adId 
WHERE v.adId = ? 

次のような質問をして、各広告に必要な数を得ることができます。

SELECT adId, 
     COUNT(ip), 
     COUNT(DISTINCT ip) 
    FROM `view` 
WHERE adId = ? --you can ommit this to see all advertisements 
GROUP BY adId 

広告の詳細情報を表示したい場合は、広告表にクエリを接続できます。

+0

私の質問を短くすると、私は重大な部分を取り除いた。最初の2つのクエリから、私はカウントを取得します。私は広告からの単一のエントリとビューから単一のエントリを接続しようとしていません。私はすべての広告のIPカウントとIP個数を取得しようとしています。ビューテーブルには、広告IDとipが含まれています。それは私がすべての見解と各広告のユニークな見解を保つために考えたやり方です。私はそれらを単一のクエリで得ることができない場合、私は別の方法を考えなければならないかもしれません。 –

+1

チャームのように働いた。ありがとう、トン! –

関連する問題