3

Oracle データベースに 2 つのテーブル (fruit_cost と fruit_availability) があります。詳細は以下のとおり

です

。fruit_cost
りんご | 30
オレンジ | 7
メロン | 14

fruit_availability は次のようになります

。fruit_availability
テーブルが空

です 次のような結果を得るための良いオプションはありますか

? フルーツコスト | fruit_availability
アップル | 30 | ヌル
オレンジ | 7 | ヌルメロン
| 14 | ヌル

4

3 に答える 3

7

を使用してテーブルを結合できますLEFT JOIN

Aは、テーブル内に一致するレコードがあるかどうかに関係なく、テーブルLEFT JOIN内のすべてのレコードを返します。クエリは次のようになります。fruit_costfruit_availability

select fc.fruit_name, 
  fc.fruit_cost,
  fa.fruit_availability
from fruit_cost fc
left join fruit_availability fa
  on fc.fruit_name = fa.fruit_name

デモで SQL Fiddle を参照してください

結果は次のとおりです。

| FRUIT_NAME | FRUIT_COST | FRUIT_AVAILABILITY |
------------------------------------------------
|      melon |         14 |             (null) |
|     orange |          7 |             (null) |
|      apple |         30 |             (null) |

結合構文を学習するのに助けが必要な場合は、ここで結合の優れた視覚的な説明を参照してください。

于 2013-01-16T20:27:09.983 に答える
4

オラクルの構文:

select *
from fruit_cost fc, fruit_availability fa
where fc.fruit_name = fa.fruit_name (+);

ここでSQLフィドル。

于 2013-01-16T20:28:00.527 に答える
0
select c.fruit_name, c.fruit_cost, a.fruit_availability
from fruit_cost c 
   left outer join on fruit_availability a on
   c.fruit_name = a.fruit_name
order by c.fruit_name
于 2013-01-16T20:27:40.660 に答える