sql >> データベース >  >> RDS >> Mysql

条件が異なるMySQLの複数のテーブルからデータを取得する

    条件のような場所ではなく、参加にユーザーチェックを入れる必要があります:

    SELECT c.course_id,l.topic,l.id,l.vid_duration,p.* 
    FROM courses c 
    LEFT JOIN lessons l ON l.course_id=c.course_id  
    LEFT JOIN progress p ON l.id = p.lesson_id and p.user_id = :userid
    WHERE c.slug = :course 
    

    これを行う理由は、JOINSが「左結合」(暗黙的に外部結合)を使用するためです。このタイプの結合は、条件が機能する場合、その行のそのテーブルのすべての列データを返すことを意味します。条件は機能せず、前述のテーブルのすべてのデータを返しますが、行に記載されているテーブルの場合、それらすべての列に対してNULLを返します。

    複雑な外側(または左)の結合がどのように機能するかを正確に言葉で表現するのは難しいので、その説明をお詫びします。




    1. 依存ドロップダウンボックスCakePHP3

    2. MySQL:時間の比較

    3. PL/SQLブロックからSCRIPTを実行します

    4. mysqlでデータベースを復元する方法は?