0

2 つのテーブルを作成しています。

表 1 には次のスキーマがあります

user_id       int            not null,autoincrement
movie _id     int            not null 
movie_name    varchar        
user_name     varchar
rating        int
genre         varchar

テーブル2には次のスキーマがあります

movie _id     int            not null 
movie_name    varchar        
user_name     varchar
genre         varchar
rating        varchar

値を挿入するクエリを配置すると、最初のテーブルに次のユーザー名が存在するかどうかが最初にチェックされます。真の場合は2番目のテーブルに挿入されます。そうでない場合は、スキーマに従って最初のテーブルに値が挿入されます。つまり、最初のテーブルには一意のユーザー名と一意のuser_Id の 2 番目には、見た映画を含む多くの繰り返しのユーザー名が含まれています

したがって、フォーム(Java、サーブレット)を介してテーブルに挿入する次の値があります

user_Id    movie_Id    movie_name      user_name   rating  genre
1           1           Twister         Alex          6      Drama
2           1           Twister         Tim           1      Drama
3           2           sweet november  pam           5      Romantic
4           3           The pianist     carl          5      Drama 
5           4           narnia          stephen       7      Fantasy   
..
..
(contd..)

表 2

    movie_Id   movie_Name    user_name     genre     Rating
    2          sweet november  Alex        Romantic    4
    3          The pianist     Alex        Drama       5
    4          narnia          Pam         Fantasy     8
    9          maceth          Tim         Drama       9
    ..
    ....

(contd.)

.. .さらに、両方のテーブルをマージして、次の画像を取得したい

user_id   movie_Id  movie_name      user_name   rating  genre
1         1         Twister            Alex        6      Drama
1         2         sweet november     Alex        4      Romantic
1         3         The pianist        Alex        5      Drama
2         1         Twister            Tim         1      Drama
2         9         macbeth            Tim         9      Drama
3         2         Sweet November     Pam         5      Romatic
3         4         Narnia             Pam         8      Fantasy
4         3         The Pianist        Carl        5      Drama
5         4         Narnia             Stephen     7      Fantasy
... and so on 

What should I use

結合を試みましたが、最初のテーブル値を無視します。フォームに値を入力してからクリックした直後に両方のテーブル値を取得したい

これは私が使用していた次の構文です

select * from table2 inner join table1 on table2.user_name = table1.user_name

何か提案してください

ありがとう

4

1 に答える 1

0

あなたは本当に悪いデータ設計をしています。たとえば、table2 から table1 への明らかなリンクはありません。user_idではなく列が必要ですuser_name

ただし、あなたの質問への答えはunion alljoin(または、むしろ、に加えて)ではありません。user_id2 番目のテーブルを検索するには結合が必要です。

select user_id, movie_Id, movie_name, user_name, rating, genre
from Table1 union all
select t1.user_id, t2.movie_Id, t2.movie_name, t2.user_name,  t2.rating, t2.genre
from table2 t2 join
     table1 t1
     on t2.user_name = t1.user_name;

とはいえ、データベース構造を修正する必要があります。usersヒントとして、 、movies、の 3 つのテーブルが必要 user_moviesです。

于 2013-05-17T14:57:47.593 に答える