查询1到多个表

时间:2016-09-15 13:19:44

标签: sql database oracle

所以我的情况可以参考下表:

TABLE A                       TABLE B         TABLE C   
ID  TOTAL_PRICE ORDER_ID        ID            ID    ORDER ID
1   10          101             101           1001  101
2   20          101             103           1002  101
3   25          103                           1003  103
4   10          103                           1004  103

对于所有这些表格,我期待这个结果:

EXPECTED OUTPUT         
ID  TOTAL_PRICE ORDER_ID    ID
1   10               101    1001
2   20               101    1002
3   25               103    1003
4   10               103    1004

我得到的结果如下:

REAL OUTPUT         
ID  TOTAL_PRICE ORDER_ID    ID
1   10               101    1001
1   10               101    1002
2   20               101    1001
2   20               101    1002
3   25               103    1003
3   25               103    1004
4   10               103    1003
4   10               103    1004

我的sql如下,我使用SQL Oracle:

SELECT a.id, a.total_price, a.order.id, c.id
FROM a,b,c 
WHERE a.order_id=b.id AND b.id=c.order_id

在这种情况下,我如何解决问题以获得预期的输出?谢谢。

1 个答案:

答案 0 :(得分:1)

考虑到匹配的表格条件,您似乎希望从表getOrElse(())为表id中的每一行分配一个c。为此,您可以使用a枚举表row_numbera中的行,然后分别使用行号分配此信息:

c