-1

I use MySQL and trying to write a PHP script for my school project.

There is one table named lessons contains this columns:

-id
-lessonid.
-studentid

I also have two different tables for notes and announcements announcements and notes tables contains these columns:

-id
-lessonid
-content
-createdtime

I need to order both announcements and notes from latest to oldest by createdtime but also need to show all lessons a student takes.

For example: A students takes maths and physics lessons. I need to display him/her both notes and announcements for both of physics and maths and all items should be ordered by date. (like a timeline.) And of course I will not show him/her the notes and announcements for chemistry lesson. Also it will be good if I can say it is note or announcement on the list.

Can you help me to write SQL and PHP code for that? Thanks.

EDIT: This is where I have stuck: I have combined two tables and ordered them by date. But can't combine them with the lessons a student take.

SELECT title, created, lessonid FROM (SELECT title, created, lessonid FROM notes UNION SELECT title, created, lessonid FROM announcements) as a ORDER BY created DESC 
4

2 に答える 2

0

また、仲間の投稿者のアドバイスに従います。手ぶらで行かせませんので、コンセプトを教えてくれます。第 3 正規形と呼ばれるものがあり、その概念に従ってテーブルの数を決定します。そのため、大きなデータベースの場合、名前と姓のテーブルを分けて、多くの人がそれらを共有するため、スペースと冗長性を節約します。そのため、 person の 1 つのテーブルにはプライマリとして personid があり、lastname テーブルを参照する lastname 外部キーがあるため、通常は lastNameRef と同様に firstNameRef という名前を付けます。だから今、一人一人にたくさんのクラスがあり、各クラスにはたくさんの人(生徒)がいます。したがって、これは多対多の関係です。この多対多の問題を解決するために allreference テーブルを作成します。そのため、主キーとしてクラス ID を持つクラス用のテーブルが 1 つあります。

于 2012-12-07T01:57:36.363 に答える
0

まず第一に、これは学校のプロジェクトのためであることをお知らせいただきありがとうございます。したがって、お答えすることはできません。それがプロジェクトに含まれている場合、教師は解決策を考え出すための概念を提供しているはずです。

あなたの質問はうまくまとめられており、解決方法はわかりますが...それはあなたのプロジェクトなので、それに亀裂を入れて、思いついたものを投稿する必要があります。

始めるためのヒントをいくつか紹介します。

お知らせとメモのテーブルを結合するには、クエリが必要です。次に、レッスンごとにデータをグループ化し、それを生徒に結合する必要があります。これはすべて基本的な SQL です。

幸運を。思いついたものを投稿してください。

于 2012-12-07T01:32:57.353 に答える