Sakilaデータベース(https://dev.mysql.com/doc/sakila/en/)からいくつかのテーブル(MySQLの場合)にビューを作成しようとしています。つまり、支払い、スタッフ、顧客に参加したい顧客の名前、スタッフの名前、支払いIDおよび金額を表示することができます。 Viewsを右クリックし、次にCreate Tableをクリックしました。 スタッフテーブルと顧客テーブルには、first_nameとlast_nameの両方の列があるため、このエラーは存在すると思います。どうすればこの問題を解決できますか?エラーの解決方法1060:ビューを使用した列名の重複表示
マイコード:
CREATE VIEW `payment` AS
SELECT payment.payment_id, customer.first_name, customer.last_name,
staff.first_name, staff.last_name, payment.amount
FROM payment INNER JOIN customer ON payment.customer_ID = customer.customer_ID
INNER JOIN staff ON payment.staff_ID = staff.staff_ID
エラーメッセージ: ERROR 1060:私は回答者の一部が示唆したように、私はエラーを取得し、別名でそれをしようとすると、列名 'first_nameの'
を複製エラー1347: 'sakila.payment'はVIEWではありません。
まったく同じコードは、SQLファイルの魅力のように機能します。実行すると、必要なテーブルが作成されます。これら2つの方法の違いは何ですか?どちらを使うべきですか?ビュー - >ビューを作成するオプションを使用していないのはなぜですか?
ありがとうございます。名前を割り当てる
customerテーブルから定義するfirst_name列を定義したので、ここに表示されている結合から転記されたエラーは表示されません。おそらく実際の結合では、テーブルを指定しなかったでしょう。 – Niagaradad
SELECT payment.payment_id、customer.first_name as customer_firstname、customer.last_name as customer_last_name ...など...つまり、同じ列名にエイリアスを追加してください... – barudo
@Niagaradad、私はテーブルを指定しました。実際の参加で –