-2

現在、クエリに取り組んでいます。私の脳にとって、これはphpとmysqlを開始したばかりなので、過負荷です。

「セミナー、サブスクリプション、サブスクリプション解除、ユーザー」の4つのテーブルがあり、それらすべてからのデータが少し必要です。「セミナー、タイトル」、「サブスクリプション、アクティブ、日時」、「ユーザー、名、姓」、「サブスクリプション解除、理由」これで、このすべてのデータを取得するために使用できる値が1つだけになり、これがセミナーIDになりました。それがすべてのテーブルからデータを取得するのに十分かどうか疑問に思っていました。

私は本当に失われました私は誰かがこの混乱を通して私を助けてくれることを願っています。

前もって感謝します

内部結合、左結合などから少し知識を得ました。

これが私のERDです http://img594.imageshack.us/img594/8923/erdk.png

4

1 に答える 1

2

これはどのように見えますか?iPadで入力したので、タイプミスでごめんなさい。

Select
    Sem.title,
    Sub.active,
    Sub.datetime,
    U.firstname,
    U.lastname,
    Unsub.reason

  From
    seminar sem

    Inner join  Subscription sub  on sub.seminar_id = sem.id

    Inner join user u on sub.user_id = u.id

    Left join unsubscription unsub on sub.Id = unsub.subscription_id

   Where
     Sem.id = your-search-value-here

サブスクリプションが常に解除されるとは限らないので、これはそのテーブルへの左結合です。

他のすべては内部にあります...つまり、サブスクリプションはユーザーとセミナーなしでは完了しません。

ただし、ユーザーがサブスクライブしているかどうかに関係なく、セミナーの詳細が必要な場合は、ユーザーへの参加もINNERからLEFTに変更する必要があります。

また、サブスクリプションなしでセミナーが存在する可能性があり、そのようなセミナーを結果に含める場合は、サブスクリプションの参加もLEFTに変更する必要があります。

左側に結合されたテーブルから選択されたフィールドで、そのセミナーの結果がそのテーブルで取得されなかった場合は、nullになることに注意してください。

于 2013-03-27T12:58:15.273 に答える