0

我正在使用以下查询来获取客户详细信息。但它不起作用,请帮助我。我是 SQL 新手。

select cu.fld_cust_id,ord.* from test1 where fld_order_id ord in (select * from tbl_customer cu where cu.fld_status=1);
4

3 回答 3

1
  1. 您不能从子句中使用的子查询中选择列WHERE,因为它们未加入此查询。您只是使用从此子查询返回的值范围

  2. 您的子查询应该只返回一列。

  3. 你应该尝试这样的事情。

    SELECT cu.fld_cust_id,ord.* FROM test1 加入 tbl_customer cu ON cu.fld_status=1 AND fld_order_id = cu.fld_cust_id

于 2013-06-28T07:11:16.303 回答
0

在查询中,您还需要注意您只能看到当前范围内的字段。因此,在主查询中,您只使用 FROM TEST1,因此您只能看到该表中的字段。ord.* 并且使用 cu 会出错。如果您需要该表中的其他字段,请使用 JOIN。TEST1 表应该包含链接到 TBL_CUSTOMER 的外键,如果没有,您需要使用其他表的路径或重新设计数据库。如果你有那个外键,那就是你在 IN 运算符周围使用的:

select fld_cust_id from test1 where fld_cust_id in (select id from tbl_customer cu where cu.fld_status=1);
于 2013-06-28T07:11:50.920 回答
0

不确定您的 tbl_customer 中有什么,但似乎您正在将 fld_order_id 与 *. 您应该与客户表中的 order_id 匹配。

select cu.fld_cust_id,ord.* 
from test1 
where fld_order_id ord in (
  select *ORDERID* from tbl_customer cu where cu.fld_status=1
);
于 2013-06-28T07:16:11.870 回答