助けてくれてありがとう、私はこの問題で立ち往生しています。
説明させてください、私はこの種のテーブルを持っています:
| domain | creationdate | value 1 | value 2 |
|--------|---------------------|---------|---------|
| abc | 2013-05-28 15:35:01 | value 1 | value 2 |
| abc | 2013-04-30 12:10:10 | value 1 | value 2 |
| aaa | 2011-04-02 13:10:10 | value 1 | value 2 |
| bbb | 2012-02-12 10:48:10 | value 1 | value 2 |
| bbb | 2013-04-15 07:15:23 | value 1 | value 2 |
そして、私はこれを(サブクエリで)選択したい:
| domain | creationdate | value 1 | value 2 |
|--------|---------------------|---------|---------|
| abc | 2013-04-30 12:10:10 | value 1 | value 2 |
| aaa | 2011-04-02 13:10:10 | value 1 | value 2 |
| bbb | 2012-02-12 10:48:10 | value 1 | value 2 |
WHERE 句と group by/having で IN/NOT IN を使用してサブクエリを組み合わせようとしましたが、適切な結果を得ることができません。
また、もう 1 つ質問があります。誰かがすでにこの種の問題に直面している場合は、彼がどのように解決したかを聞いてうれしいです。
上記の最初のテーブルのレコードは、頻繁に (10 分ごとに) 削除/挿入されています。私の目的は、後置メール サーバーによって 24 時間年中無休で使用される結果のコピー (またはビュー) を (重複エントリなしで) 作成することです。大きなビュー (多くのサブクエリを含む) はパフォーマンスを低下させると聞きました。これは、テーブルが望ましいオプションであることを意味します。問題は、10 分ごとに新しいテーブルを作成する必要がある場合、少しダウン タイムが発生し、postfix がテーブルを読み取れなくなることです。
アドバイスをお待ちしております。
編集 :
@Ed Gibbs の回答に基づいて、より良いサンプルがあります。
ソース テーブル:
| domain | creationdate | value 1 | value 2 |
|------------|---------------------|---------|---------|
| google.com | 2013-05-28 15:35:01 | john | mary |
| google.com | 2013-04-30 12:10:10 | patrick | edward |
| yahoo.fr | 2011-04-02 13:10:10 | britney | garry |
| ebay.com | 2012-02-12 10:48:10 | harry | mickael |
| ebay.com | 2013-04-15 07:15:23 | bill | alice |
クエリの結果はソース テーブルです。
望ましい結果:
| domain | value 1 | value 2 |
|------------|---------|---------|
| google.com | patrick | edward |
| yahoo.fr | britney | garry |
| ebay.com | harry | mickael |
最も古いドメイン (最小作成日) を独自の値 1 と 2 で保持したい.
新しい質問!
あなたの回答に基づいて、望ましい結果を表示しました。
結果は次のようになります。
| domain | value 1 | foreign_key |
|------------|---------|-------------|
| google.com | patrick | X |
| yahoo.fr | britney | Y |
| ebay.com | harry | Z |
この種のエントリを含むテーブルもあります。
| email | value 1 | foreign_key |
|--------------------|---------|-------------|
| john@google.com | patrick | X |
| john@google.com | britney | Y |
| harry@google.com | mary | X |
| mickael@google.com | jack | X |
| david@ebay.com | walter | Z |
| alice@yahoo.com | brian | Y |
(このサンプルでは) Yforeign_key からの %@google.com メールは適切なレコードではないと仮定します (Xforeign_key からの %google.com のみが適切なレコードであり、そのドメインは作成日選択で選択したドメインであるため)。新しいビューで参照されているドメイン/fk からのメールのみを選択できますか?
望ましい結果:
| email | value 1 | foreign_key |
|--------------------|---------|-------------|
| john@google.com | patrick | X |
| harry@google.com | mary | X |
| mickael@google.com | jack | X |
| david@ebay.com | walter | Z |
| alice@yahoo.com | brian | Y |
CONCAT('%','@',domain) とforeign_key=foreign_key 結合を試してみましたが、欲しいものが得られません。