2 つのテーブルの最初の列を 1 つの行に取得し、両方の列で並べ替える必要があります。これは私が書くことができたものですが、機能していません。
select title from movie
union
select reviewer_name from reviewer
order by title,reviewer_name;
Mysql によると、reviewer_name は不明な列です。
2 つのテーブルの最初の列を 1 つの行に取得し、両方の列で並べ替える必要があります。これは私が書くことができたものですが、機能していません。
select title from movie
union
select reviewer_name from reviewer
order by title,reviewer_name;
Mysql によると、reviewer_name は不明な列です。
映画のテーブル ddl とレビュアーの ddl を送っていただけますか? 両方のテーブルに存在する列は何ですか?
おそらくあなたが探しているものは、次のようなもので解決されるでしょう:
select
m.title,
r.reviewer_name
from
movie m,
reviewer r
where
m.movieid = r.movieid
order by m.title, r.reviewer_name;
更新された質問の後、これを行うことができます:
select
mo.title,
rv.reviewer_name,
ra.stars
from
movie mo,
reviewer rv,
rating ra
where
mo.movieid = ra.movieid
and
ra.reviewerid = rv.reviewerid
order by mo.title, rv.reviewer_name
msアクセスでもこれをすばやく実行しました。
SELECT
movie.title,
reviewer.reviewer_name,
rating.stars
FROM reviewer
INNER JOIN (movie INNER JOIN rating ON movie.movieid = rating.movieid)
ON reviewer.reviewerid = rating.reviwerid
ORDER BY movie.title, reviewer.reviewer_name
2 つ (またはそれ以上) の select ステートメントを結合すると、最初の select ステートメントのフィールド名が出力に使用されます。したがって、出力には「タイトル」というフィールドのみが含まれます。出力に「reviewer_name」フィールドはありません。そのため、エラーが発生していました。
select title
from movie
union
select reviewer_name
from reviewer
order by title;
それを試してください:
SELECT * FROM (select title from movie union select reviewer_name from reviewer) as f order by title;
しかし、映画とレビュアーの間の結合がここにないと思います...