0

我有三个具有一对多映射的表,即名称与运输和付款具有一对多关系(**忽略大小写敏感**

    Table parent has 3 columns    id, name, name_id
    Table shipping has 3 columns  id, shippingName,name_id
    Table payment has 3 columns   id, paymentName, name_id

当我执行以下查询时

    SELECT shipping.shippingName,payment.paymentName,parent.name,Parent.name_id
    FROM parent 
    JOIN shipping
    ON  parent.name_id = shipping.name_id
    JOIN payment
    ON  parent.name_id = payment.name_id
    WHERE parent.name_id= '3'

以上返回

   shipping Name             paymentName          name          name_id
   Fedex                      Credit              AA              3
   Fedex                      Debit               AA              3
   USPS                       Credit              AA              3
   USPS                       Debit               AA              3

但我想要的是

   shipping Name             paymentName          name          name_id
   Fedex                      Credit              AA              3
   USPS                       Debit               AA              3

有办法吗?还是我需要在运输和付款表之间设置任何映射

  Shipping Table

   ID        ShippingName    name_id
   1             FEDEX         3
   2             USPS          3

   Payment Table

   ID        PaymentName    name_id
   1         Credit           3
   2         Debit            3

   Parent Table

   ID        name        name_id
   1001        A           1
   1002        B           2
   1003       AA            3

Fedex 没有付款选项.. Parent 与 Shipping 有一对多 && Parent 与 Payment 有一对多.. Payment 和 Shipping 之间没有关系 我的问题是是否有可能在一个数据库调用中获得我想要的结果集或应该使用 2 个不同的查询(父+运费)(父+付款)调用两次

4

3 回答 3

1
Shipping Table

ID        ShippingName    name_id  Payment_ID
1             FEDEX         3         1
2             USPS          3         2

Payment Table

ID        PaymentName   
1         Credit        
2         Debit        

Parent Table

ID        name        name_id
1001        A           1
1002        B           2
1003       AA           3

询问:

SELECT shipping.shippingName,payment.paymentName,parent.name,Parent.name_id
FROM parent 
JOIN shipping
ON  parent.name_id = shipping.name_id
JOIN payment
ON  shipping.Payment_ID = payment.ID
WHERE parent.name_id= '3';
于 2013-02-13T16:38:42.527 回答
0

只需添加这个

GROUP BY shipping.shippingName ,payment.paymentName

在您的查询结束时

于 2013-02-12T22:08:54.543 回答
0

其中 PaymentName IN ('Credit',Debit') AND Name_ID =3

于 2013-02-13T16:26:13.687 回答