从同一个表中检索不同的行

时间:2011-12-04 14:12:34

标签: sql oracle

我有一组以下表格

客户(cus_id,cus_name);

jointAccount(cus_id,acc_number,关系);

帐户(acc_number,cus_id)

现在我想创建一个select语句来列出所有的jointAccounts, 它应该包括客户名称和关系。

我不知道如何检索两个不同的用户名,是否可以这样做?

2 个答案:

答案 0 :(得分:1)

一般来说,是的。我假设您想要根据您的jointAccount表获取联合帐户双方的客户信息。不确定你正在使用什么数据库所以这个答案是假设MySQL。

您可以在单个SQL查询中两次加入同一个表。我假设您还没有创建表,因为您在jointAccount表中列出了两次cus_id。通常这些类似cus_id1cus_id2,我在下面的示例查询中使用过。

示例:

SELECT c1.cus_id AS cust1_id, c1.cus_name AS cust1_name
     , c2.cus_id AS cust2_id, c2.cus_name AS cust2_name, j.relationship
  FROM customer c1 
 INNER JOIN jointAccount j 
    ON c1.cus_id = j.cus_id1
     , customer c2
 INNER JOIN jointAccount j 
    ON c2.cus_id = j.cus_id2

我没有测试过这个,但这是一般的想法。

答案 1 :(得分:0)

尝试此查询:

SELECT * FROM jointAccount a LEFT JOIN customer c ON a.cus_id = c.cus_id;

只需将*替换为您需要的列名称。