-1

私は sqlplus を初めて使用します。重複を取り除く必要があります。つまり、2 つのテーブルの組み合わせは必要ありません。

 select CLUB.NAME as Club_NAME,
   CLUB.PHONE as Club_PHONE,
   CUSTOMER.FIRSTNAME as CUST_NAME,
  CUSTOMER.PHONE as CUST_PHONE,
 from CUSTOMER,CLUB ;

クラブ名に電話番号があり、異なるテーブル(CLUBと顧客)からの顧客(名前と電話)と同じであり、組み合わせはありません。

ここで計算を使用していないため、group by を使用できません

group by Club_NAME,CUST_NAME;

(ORA-00979: GROUP BY式ではありません)。

助けてください。

4

1 に答える 1

1

UNION ALL を使用できます

SELECT CLUB.NAME as NAME,
   CLUB.PHONE as PHONE, 
   'CLUB' as TYPE
FROM CLUB
UNION ALL
SELECT  CUSTOMER.FIRSTNAME,
  CUSTOMER.PHONE,
  'CUSTOMER'
FROM CUSTOMER ;

これにより、すべての顧客とクラブがそれぞれの電話を手に入れることができます.

データがどのテーブルから来たかを識別したい場合に備えて、「TYPE」の列を追加しました。不要な場合は、削除するだけです。

その列を削除すると、両方のテーブルに同じレコードがある場合でも、2 回取得されなくなります。

編集:

異なる列で結果を取得する場合は、テーブルごとに個別のクエリを実行するか、すべてを結合して 4 つの列を返すことができますが、顧客を紹介する場合、クラブに関する列は null になります。

次のようにできます。

SELECT CLUB.NAME as CLUBNAME, 
  CLUB.PHONE as CLUBPHONE,
  null AS CUSTOMERNAME,
  null AS CUSTOMERPHONE
FROM CLUB
UNION ALL
SELECT null,
  null,
  CUSTOMER.FIRSTNAME,
  CUSTOMER.PHONE
FROM CUSTOMER ;

このフィドルを参照してください

于 2013-07-31T22:22:50.030 に答える