2017-03-06 10 views
0

私は内部結合を使用しているSQL selectクエリを持っていますが、いくつかの値が重複しています。私は一意の値が欲しいと私はDISTINCTを使用していますが、動作していません。内部結合で異なる値を取得するにはどうすればよいですか?

select DISTINCT 
    cy_affiliates_clickthroughs_tbl.*, 
    cy_affiliates_tbl.email, 
    cy_affiliates_tbl.firstname 
from 
    cy_affiliates_clickthroughs_tbl 
    inner join cy_affiliates_tbl on 
    cy_affiliates_clickthroughs_tbl.refid = cy_affiliates_tbl.referrer 
where 
    cy_affiliates_clickthroughs_tbl.refid = '" . $_SESSION['user_id'] . "' 
    AND date BETWEEN '$start_date' AND date BETWEEN '$start_date' 
    AND '$end_date' 
ORDER BY date DESC", OBJECT; 

電子メールとファーストネームの明確な値を取得したいと考えています。

+0

1行以上のデータを入力できますか? できるだけ電子メールとファーストネームの区別が同じ行データからではない – Kasnady

+0

電子メールIDを使用して別の結果を表示する必要がありますが、同じ1行のデータをフロントエンドの同じテーブルに4回表示してください。 – Ankit

+0

ここにあなたの現在のクエリ – Kasnady

答えて

0

あなたの選択からcy_affiliates_clickthroughs_tbl.*を削除する必要があります。

個別の電子メールとファーストネームだけを選択したい場合は、そこにある必要があります。

date BETWEEN '$start_date' AND date BETWEEN '$start_date' AND '$end_date'が間違っているため、where句にも問題がある可能性があります。 おそらくdate BETWEEN '$start_date' AND '$end_date'を意味します。

-1

あなたは、GROUP BY使用して名前と電子メールのための個別の値を取得することができます:あなたが名前や電子メールのDISTINCT値を確保するためにcy_affiliates_clickthroughs_tblからの結果の一部を逃してしまう

select 
    cy_affiliates_tbl.email, 
    cy_affiliates_tbl.firstname, 
    cy_affiliates_clickthroughs_tbl.* 
from 
    cy_affiliates_clickthroughs_tbl 
    inner join cy_affiliates_tbl on 
    cy_affiliates_clickthroughs_tbl.refid = cy_affiliates_tbl.referrer 
where 
    cy_affiliates_clickthroughs_tbl.refid = '" . $_SESSION['user_id'] . "' 
    AND date BETWEEN '$start_date' 
    AND '$end_date' 
GROUP BY cy_affiliates_tbl.email, cy_affiliates_tbl.firstname 
ORDER BY date DESC", OBJECT; 

注意を。

+0

私は何も表示していません。もう一度チェックして返信してください。ありがとうございました - Ankit – Ankit

+0

これは、グループごとの仕組みではありません。 group byを使用する場合、selectの中のすべての列は、(sumのような)いくつかの関数で集計するか、グループ内に配置する必要があります。 –

+0

@ stefano-zanini-plsテストグループ私の応答の注釈としては推奨されていませんが、「集計」(集計などの集計機能はありません)を行います。 MySQL 5.7のデフォルトの動作では、SELECT内のすべてのカラムがGROUP BYに必要ですが、MySQL v5.6以下ではSELECTにないカラムをカラムに入れることができます。 – thatsaru

関連する問題