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. サブクエリは、ここで 1 つの列のみを返す必要があります。

  3. このようなことを試してみてください。

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

于 2013-06-28T07:11:16.303 に答える
0

tbl_customer に何が入っているかわかりませんが、fld_order_id を * に一致させているようです。customer テーブルの 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 に答える
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 に答える