I have two tables (fruit_cost and fruit_availability) in oracle database, details below:
    
fruit_cost looks like this:
    fruit_name | fruit_cost
    
    apple | 30
    
    orange | 7
    
    melon | 14
    
fruit_availability looks like this:
    fruit_name | fruit_availability
    
    table is empty
    
    is there any good option to get results like these:
    
    fruit_name | fruit_cost | fruit_availability
    
    apple | 30 | null
    
    orange | 7 | null
    
    melon | 14 | null
            Asked
            
        
        
            Active
            
        
            Viewed 1.5k times
        
    3
            
            
         
    
    
        Brian Tompsett - 汤莱恩
        
- 5,753
- 72
- 57
- 129
 
    
    
        constantine
        
- 121
- 1
- 2
- 6
3 Answers
7
            You can just join the tables using a LEFT JOIN. 
A LEFT JOIN will return all records in the fruit_cost table regardless of whether there is a matching record in the fruit_availability table. Your query will look like this:
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
The result is:
| FRUIT_NAME | FRUIT_COST | FRUIT_AVAILABILITY |
------------------------------------------------
|      melon |         14 |             (null) |
|     orange |          7 |             (null) |
|      apple |         30 |             (null) |
If you need help learning join syntax here is a great visual explanation of joins.
 
    
    
        Taryn
        
- 242,637
- 56
- 362
- 405
- 
                    @constantine while the syntax in the other answer is valid for oracle only, Oracle does recommend that you use `OUTER JOIN` syntax rather than the join operator. Here is a question explaining -- http://stackoverflow.com/questions/1193654/difference-between-oracles-plus-notation-and-ansi-join-notation – Taryn Jan 17 '13 at 14:38
- 
                    Thanks for Your explanations, they were very helpful. – constantine Jan 20 '13 at 18:48
- 
                    One more question to You, should I use LEFT JOIN or LEFT OUTER JOIN in my case (ORACLE DB) and what's the difference between these two syntaxes? – constantine Jan 21 '13 at 09:15
- 
                    I have found this: [link](http://stackoverflow.com/questions/406294/left-join-and-left-outer-join-in-sql-server) but the article applies to MSSQL not ORACLE and that is why I'm still trapped :). Please help. – constantine Jan 21 '13 at 09:29
- 
                    @constantine The `OUTER` is not required syntax when using a `JOIN` – Taryn Jan 21 '13 at 11:09
- 
                    I've made some changes and updates into my query. Now there are LEFT OUTER JOIN at three tables. All works perfectly. Thanks for explaining to me why shouldn't I use old methods. All links were very useful and helpful. Now I see the light in the tunnel :). It's easier to manipulate JOIN syntaxes in the FROM clause than (+) in the WHERE clause. Best regards. – constantine Jan 21 '13 at 20:48
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
 
    
    
        Jim W
        
- 4,890
- 2
- 20
- 26
- 
                    select c.fruit_name, c.fruit_cost, a.fruit_availability from fruit_cost c left outer join fruit_availability a on c.fruit_name = a.fruit_name order by c.fruit_name – constantine Jan 20 '13 at 18:53
