私はクラス「クラス」と「コース」と呼ばれるテーブルを持っています。つまり、特定の人が特定の場所で教えるクラスのインスタンスです。基本的には、特定のコースのパラメーターに基づいてどのクラスがアクティブであるかを私に見せてくれるテーブルを取りたいです。たとえば、次のようにMySQLで1つのテーブルの各行に対して1つの一致を持つ2つのテーブルを結合できますか?
CLASSES class_id|class_name --------|------------ 1|Class One 2|Class Two 3|Different Class etc... COURSES course_id|class_id|room ---------|--------|-------- 1| 3| 1 2| 3| 2 3| 1| 1 4| 3| 1 5| 3| 2 6| 2| 1 etc...
私はちょうど、各クラスのインスタンスを1つだけ返すようにSELECT classes.* FROM classes JOIN courses ON classes.class_id=courses.class_id WHERE courses.room=1
のようなものを得ることができる方法があります場合、私は思ったんだけど。私は部屋1で行われるクラスだけを取得していますが、部屋1のコーステーブルにそのクラスのインスタンスが複数存在するため、それぞれ複数のインスタンスが取得されています。
JOIN
- 左、右、内側など - いろいろな種類のものを試してみました。そして、私が他のテーブルの仕様に基づいてテーブルを引っ張っているので、それらはすべて私に同じ結果を与えるようです。
だから私は取得しています:
class_id| class_name |course_id|room --------|--------------|---------|-------- 1|Class One | 3| 1 2|Class Two | 6| 1 3|Diferent Class| 1| 1 3|Diferent Class| 4| 1 etc...
をしかし、私はちょうど取得したい:
class_id| class_name |course_id|room --------|--------------|---------|-------- 1|Class One | 3| 1 2|Class Two | 6| 1 3|Diferent Class| 1| 1 etc...
は私だけJOIN
クラスの各行の最初の試合でそれを持つことができますか?私はMySQLで新しくなっているので、私が明確にしたいことを表現するのに少し問題があります。謝罪します。
また、私はPDO
経由でこれをすべてPHPに取り込みます - PDO
でこれを達成する具体的な方法がありますか?
COURSESテーブルから1つのレコードのみが必要な場合は、どちらのレコードを使用しますか? IE:常に最低のcourseid(&room?)の値ですか? –
正直なところ重要ではありません。あなたは正しいと言いました。私はクラスデータを取得するだけです。私がコースに行く唯一の理由は、適切な基準を持つ対応するコースを持つクラスだけを取得することです。 –