1

私はこのSQLの世界に不慣れです。私は、SQL と単純な結合に関する知識が限られている開発者です。1 対多の関係の SQL 結合を記述する際に問題があります。ここに私の問題があります -

たとえば、次の VendorsList テーブルがあるとします。

id   Name         address
1    sales        Japan
2    marketing    US

そして、VendorContacts テーブルには次のものがあります。

id   vendorid        vendorempname
1    1               Tom
2    1               Bill
3    2               Jessy
4    1               Rachel
5    2               Rob

参加後に欲しいのは:

vendor_id    Name     address   vendorempname
1            Sales    Japan     Tom
1            Sales    Japan     Bill
1            Sales    Japan     Rachel
2            Marketing US       Jessy
2            Marketing US       Rob

これに参加するのを手伝ってくれる人はいますか?

4

4 に答える 4

3

これでうまくいくはずです

Select v.vendor_id, v.name, v.address, vc.vendorempname
  from VendorContacts vc
  join VendorList v
    on v.id = vc.vendor_id
 order by vc.vendor_id
于 2013-07-05T05:43:04.813 に答える
0
  SELECT b.vendor_id, a.Name, a.address, b.vendorempname
    FROM VendorList a, VendorContact b
   WHERE a.id = b.vendor_id
ORDER BY b.vendor_id;
于 2013-07-05T05:43:20.307 に答える
0

以下のクエリを試してください。担当者名の順序を除いて、探している正確な結果が得られます..

            WITH VENDORLIST AS 
            (SELECT '1' ID,    'sales' Name,      'Japan'  address FROM DUAL
            UNION
            SELECT '2' ID,    'marketing' Name,      'US'  address FROM DUAL),
            VENDORCONTACTS AS 
            (
            SELECT '1' ID,    '1' vendorid,      'Tom'  vendorempname FROM DUAL
            UNION
            SELECT '2' ID,    '1' vendorid,      'Bill'  vendorempname FROM DUAL
            UNION
            SELECT '3' ID,    '2' vendorid,      'Jessy'  vendorempname FROM DUAL
            UNION
            SELECT '4' ID,    '1' vendorid,      'Rachel'  vendorempname FROM DUAL
            UNION
            SELECT '5' ID,    '2' vendorid,      'Rob'  vendorempname FROM DUAL

            )
            SELECT VENDORID, NAME, ADDRESS, vendorempname FROM VENDORLIST, VENDORCONTACTS
            WHERE VENDORCONTACTS.vendorid = VENDORLIST.ID
            ORDER BY VENDORID, NAME, ADDRESS, vendorempname
            ;
于 2014-04-16T05:32:26.167 に答える