SQL:将两个表中的数据一起显示

时间:2016-09-20 23:31:32

标签: sql oracle

我刚刚开始在SQL世界中,所以我有一个非常noob的问题:

我有两张桌子:

  • clients(columns:client_id和name)
  • accounts(columns:account_id和client_id)

我需要编写一个显示所有客户端帐户的查询。

但是,问题是并非所有客户都有帐户,如果客户端没有帐户:我如何显示client_idnameaccount_id }栏?

2 个答案:

答案 0 :(得分:1)

此查询应该有效:

SELECT *
FROM accounts
LEFT [OUTER] JOIN clients
ON accounts.client_id = clients.client_id;

如果不试试这个:

SELECT *
FROM accounts
LEFT [OUTER] JOIN clients
ON accounts.client_id = clients.client_id WHERE clients.client_id IS NOT NULL;

这些是纯SQL查询,我的意思是它们不是特定于PL-SQL的。 LEFT [OUTER] JOIN只会返回accounts表的列。 [OUTER]关键字是可选的,它从数据库版本延伸到版本。 ON accounts.client_id = clients.client_id将匹配两个表中的client_id列。最后,WHERE clients.client_id IS NOT NULL部分应该会阻止NULL个单元格中client_id个值的行。

有用的链接:https://www.techonthenet.com/oracle/joins.php

答案 1 :(得分:0)

尝试此查询,它返回客户端名称客户端ID,并向没有accountid的客户端显示null。

  select clients.name, accounts.account_id from accounts left join clients on 
  accounts.clintid=clients.client_id 

check if you are wanting this