2016-04-04 11 views
1

こんにちは私は選択に問題があります。管理者が複数の書籍のリストを作成できるアプリケーションがあり、そのリストにはユーザーが割り当てられているので、どの書籍を選択すれば選択したものを印刷することができます。私はユーザーの部分にリストを表示することに問題があります。ユーザーは選択した書籍に追加または削除することができます。私はいくつかの条件が不足していると思う。テーブル内の他のテーブルにないデータを選択

表のユーザー:

+----+-------+----------+ 
| id | name | class_id | 
+----+-------+----------+ 
| 1 | John |  1 | 
| 2 | Jenna |  2 | 
+----+-------+----------+ 

表クラス

+-----+--------+ 
| id | name | 
+-----+--------+ 
| 1 | class1 | 
| 2 | class2 | 
+-----+--------+ 

表の本:

+----+-------+ 
| id | name | 
+----+-------+ 
| 1 | test1 | 
| 2 | test2 | 
| 3 | test3 | 
| 4 | test4 | 
| 5 | test5 | 
+----+-------+ 

表リスト

+-----+----------+ 
| id | class_id | 
+-----+----------+ 
| 1 |  1 | 
| 2 |  2 | 
+-----+----------+ 

表レコード

+---------+---------+ 
| list_id | book_id | 
+---------+---------+ 
|  1 |  1 | 
|  1 |  2 | 
|  1 |  3 | 
|  2 |  1 | 
|  2 |  4 | 
|  2 |  5 | 
+---------+---------+ 

表の選択

+---------+---------+---------+ 
| list_id | book_id | user_id | 
+---------+---------+---------+ 
|  1 |  1 |  1 | 
|  1 |  2 |  1 | 
|  2 |  4 |  2 | 
+---------+---------+---------+ 

私が選択していない書籍、の名前を選択する必要がありますが、彼らは私がしました

リストでありますこれを試しましたが、機能していません。どのようにすればよいでしょうか:

r.list_id is switchセッションによって編集されました

ジョンの場合、私はtest3とJenna test1とtest5の場合を見たいと思います。

そして、私がジョンのリストにputtest1を入れると、それがジェナのものに表示されないという問題があります。

+0

にr.book_idていない試してみましたか? – scaisEdge

+0

ああ、私はこれを翻訳していて、それを忘れました、今編集されました – krkus

+0

まだ苦労していますか?たぶん、sqlfiddleを投稿する – Strawberry

答えて

0

私はあなたが何を意味するのwheret.id持っ

SELECT b.id, b.name 
    FROM records r 
    JOIN books b on(b.id=r.book_id) 
    JOIN lists l on(l.id=t.list_id) 
    JOIN class c on(c.id=l.class_id) 
    JOIN users u on(u.class_id=c.id) 
    LEFT JOIN selection s on(r.book_id=s.book_id) 
    WHERE class_id =(SELECT id_tridy FROM studenti where id=1) 
    AND r.list_id=1 AND r.book_id NOT IN (select book_id from selection) 
+0

私もそれを試してみましたが、それは0レコードを返して、これもid "1 id_tridy FROM studenti id = 1"は翻訳されていませんでした。 – krkus

0
SELECT b.id 
    , b.name 
FROM records r 
join books b 
on b.id=r.book_id 
join lists l 
on l.id=t.list_id 
join class c 
on c.id=l.class_id 
join users u 
on u.class_id=c.id 
left 
join selection s 
on r.book_id = s.book_id 
where l.id=(select l.id from lists join classes c on(l.class_id=c.id) join users u on(u.class_id=c.id) where u.id=1) and r.book_id not in(select book_id from selection where user_id=1) 
関連する問題