1

次の SQL ステートメントがあります。

select distinct
  u.id, 
  v1.code,
  v2.code,
  a1.phone,
  a1.phone1,
  SUM(o1.totalprice) as SALES
  SUM(ot4.numbers) as NUMBERS
from 
  users u,
  orders o2
 inner join values v1 on v1.pk = u.gender
 inner join values v2 on v2.pk = u.egistration
 inner join addresses a1 on a1.owner = u.pk 
 inner join orders o1 on o1.userpk = u.pk
 inner join orderthings ot4 on ot4.orderpk = o2.pk 
where 
  u.cccustomer = 1
and
  v2.code = 'REGISTERED'
group by
  u.id, 
  v1.code,
  v2.code,
  a1.phone,
  a1.phone1
order by 
  id;

基本的に注文の結合は機能しませんが、ユーザー u と関係のない 2 つのテーブルで追加の関係を取得する必要があります。どうすればそれを達成できますか?

4

1 に答える 1

1

サンプルのSQLFiddleに基づいて、テーブルが相互に関連していない場合は、次のように、を使用してテーブルCROSS JOINを結合できます。

select u.Email, 
  v1.String Gender, 
  v2.String Title, 
  o.a_string, 
  o.o_string
from users u
inner join value v1
   on u.Gender = v1.PK
inner join value v2
   on u.Title = v2.PK
cross join
(
  select a.PK, a.string a_string, o.string o_string
  from another a
  inner join other o
    on a.PK = o.PK
) o;

デモ付きのSQLフィドルを参照してください

于 2012-11-06T19:03:14.317 に答える