からすべての個々の項目を返します。SQL:テーブルはリストに個々の項目やFKが含まれています - 私は、組み合わせ表を持っているテーブル&リスト
- 条件の自動メールのUIアクションを持つテーブルへの自動電子メール(FK用:トリガー)電子メールでのテーブルに、個々のユーザーのための
- メール(FK)
- メーリングリスト(FKメーリングリストを持つテーブルへ)
このテーブルには、私を可能に
- 自動メールに個別の電子メールを追加しますが
- をトリガー
- メーリングリストに個々の電子メールを追加し、自動メールにメーリングリストを追加
- メーリングリストだけで、個々の電子メールを持っているトリガ - メーリングリストは入れ子にすることはできません
私は、ウェブサイトからの電子メールを送信する必要がある場合、私はすべての異なる電子メールをプルする必要があります目的の自動電子メールトリガーのために。私は個々の電子メールをのみします。トリガーに割り当てられているすべての/メーリングリストについて、メーリングリストの名前ではなく、そのメーリングリストのメールを返送したいと思います。
EDIT(更新テーブル):
実際のDBテーブル:
ユーザテーブル
User_ID First_Name Last_Name Email Other Info (multiple columns)
----------------------------------------------------------------------------
1 Mike Smith [email protected] <other info>
2 Sue Jones [email protected] <other info>
3 Bob Roberts [email protected] <other info>
4 Mary Evans [email protected] <other info>
5 Joe Miller [email protected] <other info>
Auto_Emailテーブル
Auto_Email_ID Page Trigger
----------------------------------------------------------------------------
1 Events Save Event
2 Events Edit Event
3 Events Delete Event
4 Friends Request Friend
5 Friends Confirm Friend
Mailing_Listテーブル
(個々の電子メール、チームAの電子メール、およびチームBの電子メールから):Auto_Email条件 "の保存・イベント" のための210Email_Listテーブル
ID Auto_Email_ID User_ID List_ID
----------------------------------------------------------------------------
1 1 1 NULL
2 1 NULL 1
3 1 NULL 2
4 2 2 NULL
5 2 NULL 3
6 NULL 1 1
7 NULL 3 1
8 NULL 4 2
9 NULL 5 3
Email_Listビュー
ID Auto_Email_ID Trigger User_ID Email List_ID List
----------------------------------------------------------------------------
1 1 Save Event 1 [email protected] NULL NULL
2 1 Save Event NULL NULL 1 Team A
3 1 Save Event NULL NULL 2 Team B
4 2 Confirm Friend 2 [email protected] NULL NULL
5 2 Confirm Friend NULL NULL 3 Team C
6 NULL NULL 1 [email protected] 1 Team A
7 NULL NULL 3 [email protected] 1 Team A
8 NULL NULL 4 [email protected] 2 Team B
9 NULL NULL 5 [email protected] 3 Team C
望ましい結果
[email protected]
[email protected]
[email protected]
私は以下のコードでこれを行う方法を知っていますが、それは多くのループとSQLコールバックです。私は単一のSQL proc/queryでこれを行うことを好むだろうが、私は方法を知らない。
vbを使用しています。ネット:
Dim sendTo = New List(Of String)
For Each email As MyObject In GetEmailsForAutoEmail("Save Event") 'calls SQL proc
If (email.Email_ID.HasValue) Then
sendTo.Add(email.Email)
Else
For Each mlEmail As MyObject In GetEmailsForMailingList(email.List) 'calls SQL proc
sendTo.Add(mlEmail.Email)
Next
End If
Next
sendTo = sendTo.Distinct()
私はあなたが何を求めているのかは分かりませんが、これはひどいデータベース設計として私を襲っています。 –
これは非常に畳み込まれたテーブルです...いくつかの異なるテーブルの列を表示していますか、それとも実際に*どのように格納されていますか? (あなたの質問に表示されている方法とは異なる方法でテーブル構造を表示してください。) – Siyual
DBビューに表示されているカラムを表示していました。関連するすべてのテーブルの構造を追加しました。 – steelerose