1

私は問題を抱えており、友人はテーブル マッピングを使用する必要があると言っています...しかし、テーブル マッピングとは何かがわかりません。また、これからやろうとしていることが正しいかどうかもわかりません。

私はこのテーブルを持っています:従業員

+-------+------------+------+-------------------------+
| ac_no | department | rank | email                   |
+-------+------------+------+-------------------------+
| 12ac  |  01        | 08   | bla@vla.com             |
| 1an4  |  02        | 08   | jla@jla.com             |
| dr17  |  01        | 08   | dre@dre.com             |
| 13IN  |  01        | 05   | adjre@jre.com           |
| TE12  |  02        | 05   | drew@dre.com            |
| GR45  |  01        | 05   | noide@idea.com          |
+-------+------------+------+-------------------------+

表従業員のデータから、表マッピングに挿入する必要があります

目標は、ランク 08 のデータをすべて取得することです。

+-------+------------+------+-------------------------+
| 12ac  |  01        | 08   | bla@vla.com             |
| 1an4  |  02        | 08   | jla@jla.com             |
| dr17  |  01        | 08   | dre@dre.com             |
+-------+------------+------+-------------------------+

そして、ランク05で同じ部署のデータを探し、メールを取得します...データが複数ある場合、メールは分割されます。

+-------+---------------+------------+------------------------------+
| ac_no |email          | department |               email          |
+-------+---------------+------------+------------------------------+
| 12ac  | bla@vla.com   |   01       | adjre@jre.com;noide@idea.com |
| 1an4  | jla@jla.com   |   02       | drew@dre.com                 |
| dr17  | dre@dre.com   |   01       | adjre@jre.com;noide@idea.com |
+-------+---------------+------------+------------------------------+

手順を使用して、テーブルemployeeからテーブルmappingにデータを処理したいのですが、それを取得する方法がわかりません。ワークベンチでプロシージャを作成して実行し、テーブル マッピングにデータを挿入します。

select ac_no,department,rank,email,(select department,email from employee where rank=05)head from employee where rank=08;

しかし、このクエリを実行すると、結果subquery returns more than 1 row

基本的な質問で申し訳ありませんが、これを行う方法が本当にわかりません。

4

2 に答える 2

0
(select ac_no,department,rank,email from employee where rank=8) UNION (select ac_no,department,rank,email from employee where (rank,department) in (select rank,department from employee where rank=5 group by department having count(*)>1)) 

すべての従業員のデータを返します:

1) 部門関係なくランク8

2) ランク 5 で、同じ部署にランク 5 の従業員が少なくとも 1 人以上いる場合

于 2012-09-19T06:13:55.250 に答える
0

このようにしてみてください

select ac_no,department,rank,email from employee where rank = 08 and where department =  all(select department from employee group by department) 
于 2012-09-19T05:04:49.023 に答える