ホームページ  >  記事  >  バックエンド開発  >  2 つのテーブル間で関連するクエリを要求してください

2 つのテーブル間で関連するクエリを要求してください

WBOY
WBOYオリジナル
2016-06-13 12:08:33879ブラウズ

2 つのテーブルに関連するクエリについてアドバイスをお願いします。
functionDetails($id){
$query = $this->db->query("select t1.gradename, t2.* from Grade as t1, Student as t2 wherestudentid = '$id' and t2.gradeid = t1.gradeid ");
return $query->result();
}

2 つのテーブルがあります。student table と成績テーブルでは、呼び出しメソッドによって渡された id 変数を使用して、指定された生徒番号の生徒情報をクエリします。ここで、sudent のすべてのフィールド値と成績名の値をクエリしたいと思います。
student と Grade は外部キーの関係であるため、Student テーブルの GradeID は Grade テーブルの GradeID と同じであり、Gradename は Grade テーブルに格納されます。

私が書いたステートメントは間違っているため、実行できません。助けてください。
------解決策----------------------
s.*, g.gradename from を選択してくださいStudent as s left join Grade as g on s.gradeid = g.gradeid where s.studentid = $id
-----解決策のアイデア------------ - --------
where 句の 'studentid' 列があいまいです
where 句の Studentid 列があいまいです。

複数テーブルのクエリでは、カラム名にプレフィックスを付ける必要があります。そうでないと、MySQL はそれを明確に区別できません。
------ソリューションのアイデア----------------------

引用:
wander_wind は正しく記述されていますが、なぜ私の記述が間違っているのかわかりません

このエラーの最も一般的な理由は、関連テーブル内の同じフィールドによって引き起こされることです、上記のように、テーブルのエイリアスをプレフィックスとして追加します
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。