2017-02-22 12 views
0

どうすればこの作業を行うことができますか?私はテーブルu_uzivateleを持っており、テーブルb_objednavkyに参加したいだけですが、テーブルu_uzivateleのテーブルを、テーブルbw_paid_ordersに加入でき、WHEREという句に合致しないテーブルに追加することは望ましくありません。現在、SELECTステートメントは、テーブルuzivateleのテーブルがbw_paid_ordersテーブルにあり、WHERE句の条件を満たすテーブルを返します。しかし、複数の行が返されているため、テーブルu_uzivateleに参加することはできません。SELECTステートメントのテーブルを結合する

SELECT STMT 

FROM b_objednavky INNER JOIN u_uzivatele ON b_objednavky.uzivatel = 
( 
     SELECT u_uzivatele.id 
     FROM u_uzivatele 
     JOIN bw_paid_orders 
     ON  u_uzivatele.id = bw_paid_orders.user_id 
     WHERE bw_paid_orders.active_thru < now() + interval '6 months') uzivatele 
+2

'選択...テーブルから、私はあなたがお勧めという選択を使用する必要があります...' – jarlh

+0

上(サブクエリ)に参加?...基本的に私は以下のサブクエリ – jemcaj

+0

参照くださいa_horse_with_no_nameの答えに、テーブルに参加したいです。 – jarlh

答えて

2

あなただけbw_paid_orders特定のエントリを存在しませいるu_uzivateleレコードを参加したいです。したがって、NOT EXISTSまたはより簡単なNOT INを使用してください。

select ... 
from b_objednavky o 
join u_uzivatele u on u.id = o.uzivatel 
        and u.id not in (select user_id from bw_paid_orders po 
            where active_thru < now() + interval '6 months') 
+0

これは実際に私が必要としているようです。しかし、全体的にはまだ動作しません、私はこれが何か他のものを返すかどうかを確認する必要がありますしたい – jemcaj

関連する問題