2011-01-18 9 views
1

投稿、タグ、およびtag_refリンクテーブルを持つアプリがあります。特定のタグの関連付けを持つ投稿を検索したい次のようにSQL:このクエリで重複レコードを取得する

データベース構造は以下の通りである:

ポスト

ID

CITY_ID

tags_ref

そこで

テーブル

TAG_ID

タグ

ID

safe_tag

タグ

をROW_ID tags_refは、投稿とタグの間のリンクテーブルです。

投稿にいくつかのタグを追加した後、私のクエリで重複したレコードを取得しています。でもこのクエリで

SELECT P.* FROM posts as P WHERE P.city_id = 2 

私はCITY_IDフィールドが2に設定されている記事を探して、ここだけのテーブルを結合していないよにもかかわらず、私はまだだけ持っているレコードに重複したレコードを取得していますタグに関連付けられています。

私も試してみた:

DISTINCT (P.id), P.* FROM posts as P WHERE P.city_id = 2 

を私はので、私は、私は7件のユニークな投稿を期待していて、重複レコードが実際には存在しません知っている唯一の7行は私の記事のテーブルに存在している知っています。

誰かが私が間違ったところを見つけ出すのを助けることができますか?

データベースのMySQLある

おかげで、

ビリー

+0

あなたはいくつの投稿を複製していますか? – Ass3mbler

+0

あなたは何を今返すのですか?実際の(単純化されていない)クエリと実際の出力を投稿してください。 – Quassnoi

+0

これは可能ではありません。投稿、タグ、および複製されるサンプルデータのテーブル構造を送信できますか? – diagonalbatman

答えて

0
DISTINCT (P.id), P.* FROM posts as P WHERE P.city_id = 2 

を(P. *で)他の分野でいくつかの値が異なる場合、ここであなたのDISTINCTは何もしません。フィルターなしでテーブルの投稿全体を照会して、実際に何が得られたのかを確認してください。

関連する問題