イベントの登録を処理する、学校用のイベント システムを作成しました。
学生だけがサイトにサインアップできるようにしたいので、potentialusersというテーブルを用意しました。すべてのエントリには、FullName と Email があります。ユーザーがサイトにサインアップすると、サイトは学生の電子メールが potentialusers テーブルにあるかどうかを確認し、ある場合はユーザーをusersテーブルに追加します。
registrationsというテーブルもあります。ユーザーがイベントに登録するたびに、このテーブルに追加されます。エントリは次のようになります: registrationid、eventid (イベント テーブルへの外部キー)、userid (潜在的なユーザーではなく、ユーザー テーブルへの外部キー)。
LIKE ステートメントを使用して名前を検索し、ユーザーの結果リスト、ユーザーがイベントに登録されているかどうかを示す列、およびユーザーが登録されているかどうかを示す列を取得したいと考えています。
これは私が試したことです(中括弧でいくつかのコメントを追加しました):
SELECT FullName, Email from potentialusers
LEFT OUTER JOIN registrations ON (potentialusers.Email = registrations...{1})
WHERE events.eventid = '7'{2} AND potentialusers.Email LIKE = '%jazerix%';
{1} -> 最初の問題は、登録テーブルにメール列が含まれておらず、メールを含むユーザー テーブル内のユーザーへの参照のみであるためです。
{2} -> イベントを分離できるように、7 は単なる例です。
最後に、次のようなものを返したいと思います。