テーブルに複数回存在する同じday
とcause
を持つログテーブル内のエントリを一致させたいと思います。私はそれがすでに重複をフェッチするためのクエリを書いた、私の問題は、後でJOINsのテーブルの結果のすべての列にアクセスする必要があるということです。自己結合を使用して重複は見つかりましたが、すべての列を含む
| ID | DATE | CAUSE | USER | ... |
|--------------------------------------|
| x | 2017-01-01 | aaa | 100 | ... |
| x | 2017-01-02 | aaa | 101 | ... |
| x | 2017-01-03 | bbb | 101 | ... |
| x | 2017-01-03 | bbb | 101 | ... |
| x | 2017-01-04 | ccc | 101 | ... |
| x | 2017-01-04 | ccc | 101 | ... |
| x | 2017-01-04 | ccc | 101 | ... |
| x | 2017-01-05 | aaa | 101 | ... |
| .....................................|
| .....................................|
| .....................................|
クエリ:
SELECT logs.* FROM
(SELECT day, cause FROM logs
GROUP BY day, cause HAVING COUNT(*) > 1) AS logsTwice, logs
WHERE logsTwice.day = logs.day AND logsTwice.cause = logs.cause
選択サブは正確に正しいデータ(日付や原因)を取り出したが、私はこれらの試合の追加の列を取得しようとすると、私は完全に間違って取得表はそのように見えますデータ。私は間違って何をしていますか?
ジョイン構文が真剣に時代遅れであることを除けば、動作するはずです。そのデータが与えられたら、何を取り戻していますか? – Simon
[mcve]を読んで行動してください。特に、DDL、DML、入力、出力、および期待される出力を示します。 – philipxy