SQL查询在自身上加入一个表(单独的ID和标题表)

时间:2015-05-05 22:19:55

标签: sql select join

订购表

o_id   customer_id   drink_id   food_id
----   -----------   --------   -------
 1         22         10          12
 2         22         11          12
 3         22         11          12
 4         44         11          13
 5         22         11          13

标题表

t_id   title_id   type      title
----   --------   ----      -----
 1        10      drink     Black Velvet
 2        11      drink     Mojito
 3        12      food      Rice
 4        13      food      Meat

如何产生这个结果:

例如 customer_id = 22

o_id   drink_id   drink_title   food_id   food_title
----   --------   -----------   -------   ----------
 1        10     Black Velvet     12         Rice
 2        11        Mojito        12         Rice
 3        11        Mojito        12         Rice
 5        11        Mojito        13         Meat

我不知道是否有正确的方法:

  1. 嵌套SELECT查询?
  2. 重命名后,订单表上还是JOIN? (如果是这种情况,查询应该如何?)

2 个答案:

答案 0 :(得分:4)

您可以多次name := "Transaction Fraud" version := "1.0" scalaVersion := "2.10.4" libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.1" % "provided" resolvers ++= Seq( "Akka Repository" at "http://repo.akka.io/releases/", "Spray Repository" at "http://repo.spray.cc/") join表到title表:

orders

答案 1 :(得分:1)

您可以使用某个功能并获得结果:

SELECT o_id,
       drink_id,
       getOrderTitle(drink_id) AS drink_title,
       food_id,
       getOrderTitle(food_id) AS food_title
  FROM Order;

创建函数:

CREATE OR REPLACE FUNCTION getOrderTitle (startValue IN NUMBER) 
RETURN VARCHAR2 IS
   orderTitle VARCHAR2 (20);
BEGIN
   SELECT title
     INTO orderTitle
     FROM Title 
     WHERE title_id = startValue;
   RETURN orderTitle;
END;
/