我使用以下查询来获取客户详细信息。但它没有用,请帮助我。我是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);
答案 0 :(得分:1)
您无法从WHERE
子句中使用的子查询中选择列,因为它们未加入此查询。您只是使用从此子查询返回的值范围
您的子查询应该只返回一列。
你应该尝试这样的事情。
SELECT cu.fld_cust_id,ord。* 从test1 JOIN tbl_customer cu ON cu.fld_status = 1 AND fld_order_id = cu.fld_cust_id
答案 1 :(得分: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);
答案 2 :(得分: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
);