0

ねえ、どうしたらいいかわからない…。

その宿題:「アルゼンチン」の国だけで車を購入したコードと消費者をリストします。

Table sell:
customer | resell  | veicle    |    date    |  value
---------+---------+-----------+------------+----------
 02      | 01      | 03        | 2010-02-05 | 17500.00
 04      | 02      | 01        | 2010-01-07 | 28000.00
 01      | 03      | 08        | 2010-02-15 | 28000.00
 02      | 03      | 02        | 2010-03-12 | 42000.00
 03      | 04      | 06        | 2010-02-06 | 11500.00
 03      | 02      | 05        | 2010-01-25 | 22100.00
 01      | 01      | 04        | 2010-01-21 | 15500.00

テーブルの顧客:

 cod    |    name    | lastname
--------+------------+------------
 01     | Jose       | Alves
 02     | Paulo      | Cunha
 03     | Maria      | DPaula
 04     | Joana      | Silveria

テーブルベクル:

 cod    |manufacturer|     model       | year |  country  |  price
--------+------------+-----------------+------+-----------+----------
 01     | 01         | Gol             | 2000 | Brasil    | 25000.00
 02     | 01         | Golf            | 2005 | Argentina | 39000.00
 03     | 04         | Ford Ka         | 1990 | Brasil    | 15000.00
 04     | 03         | Corsa Seda      | 1995 | Brasil    | 12500.00
 05     | 04         | Fiesta          | 2003 | Argentina | 20000.00
 06     | 03         | Corsa Seda      | 1995 | Argentina | 10000.00
 07     | 05         | Palio           | 2002 | Brasil    | 15000.00
 08     | 05         | Siena           | 2006 | Brasil    | 26000.00

私はそれを始めると思います:

SELECT customer.cod, customer.name 
FROM sell, customer 
WHERE (SELECT cod 
        FROM veicle 
        WHERE veicle.country = 'Argentina') = sell.veicle;

アルゼンチン車のみを選択するには...答えを教えてください。

4

5 に答える 5

2
SELECT c.*
FROM   customer c
WHERE EXISTS (
    SELECT 1
    FROM   sell s
    JOIN   veicle v ON v.cod = s.veicle
    WHERE  s.customer = c.cod
    AND    v.country = 'Argentina'
    )
AND NOT EXISTS (
    SELECT 1
    FROM ...
    );

これは宿題なので、残りはあなたに任せます。アルゼンチン以外から車両を購入した顧客を除外するには、を入力します。これは最初の条項...と非常によく似ています。EXISTS最初を理解していれば、残りを完了することができます。

于 2012-06-04T17:39:31.033 に答える
1

これを試して SELECT DISTINCT customer.cod, customer.name || customer.lastname FROM customer, veicle, sell WHERE customer.cod = sell.customer AND veicle.cod = sell.veicle AND veicle.country = 'Argentina'

于 2012-06-04T17:34:41.200 に答える
0

テーブル結合を調べます。そうすれば、サブクエリ(whereステートメントの内容)を実行する代わりに、テーブルに結合でき(句のようなFromものですが、結合する対象を指定する必要があります)、whereに veicle.country = ' を置くことができますアルゼンチン'。

また、FYI veicle のスペルが間違っています。乗り物である必要があります。

于 2012-06-04T17:34:31.037 に答える
0

これを試して :

 SELECT c.cod, c.name,c.last_name,v.model
 FROM sell as s JOIN customer as c JOIN veicle as v ON s.veicle = v.cod and s.customer = c.cod
 WHERE v.country = 'Argentina' 
于 2012-06-04T17:40:00.253 に答える
0
WITH minima AS (
        SELECT DISTINCT s.customer
        , MIN(v.country) AS mi
        , MAX(v.country) AS ma
        FROM sell s
        JOIN veicle v ON s.resell = v.cod
        GROUP BY s.customer
        )
SELECT cu.* FROM customer cu
JOIN minima mm ON mm.customer = cu.cod
WHERE mm.mi = 'Argentina'
AND mm.ma = 'Argentina'
        ;
于 2012-06-04T18:52:46.847 に答える