コースを保存するテーブルAと、ユーザーの現在の進捗状況を保存するテーブルBがあります。
テーブルAには、コースごとに一意のID列(courseID)があり、同じ名前でテーブルBにも存在します(したがって、それらの関係)。
テーブルBにIDが存在しないテーブルAからすべての行を取得したい(たとえば、現在このコースに参加しているユーザーはいない)
2つのテーブルは外部キーを使用せず、同じ名前の列のみを使用します。
試す
SELECT A.* FROM tableA A
LEFT JOIN tableB B ON USING (courseID)
WHERE B.courseID IS NULL
SELECT * FROM A WHERE A.courseID NOT IN (SELECT courseID FROM B);
あなたが必要LEFT JOIN
SELECT * FROM `tableA`
LEFT JOIN `tableB` ON `tableA`.`ID`=`tableB`.`ID`
WHERE `tableB`.`ID` IS NULL;
どのデータベースを使用していますか? Oracleを使用している場合は、次のものが必要だと思います。
select A.student_code from A where not exists
( select 'x' from B where B.student_code = A.student_code)
少なくともそれはあなたが求めていたものだと思います..