2013-10-07 39 views
1

我想加入这些4桌桌加入4个相关

  • id_customer;
  • 名称;

雇主:

  • id_employer;
  • id_customer;

products_to_employer

  • id_product;
  • id_employer;

产品

  • id_product;
  • name_product;
  • code;
  • 价格;

我在哪里基本上试图获得客户的所有产品。基本上每个产品都与id_employer相关,但每个雇主都与客户相关,所以我想要的是将所有与用户无关的产品都带给他,但是却让他的“父母”成为客户。

我想要得到的结果是:

结果:

例:变量$ id_customer:4

产品导致:

  • id_customer(ID NR 4)
  • name_product;
  • name_product;
  • code;
  • 价格;

回答

1

这是要求:

在哪里我基本上是试图得到一个客户的所有产品

所以它只是一个应用的的一些连接和一个where子句过滤器上id_customer

select p.* from products p 
join products_to_employer pe on p.id_product = pe.id_product 
join employers e on pe.id_employer = e.id_employer 
join customers c on e.id_customer = c.id_customer 
where c.id_customer = 4 

注:不应该有任何需要添加id_customer的结果,你已经被它过滤的。

+0

感谢$ Mosty Mostacho但它会出现一个情况,查询工作正常,但由于用人单位BOT许多同样的产品在我while循环带来reptid产品,我喜欢把只有一次,是有可能在一SQL查询? – mauro

+1

它工作了,非常感谢! :-) – mauro

+0

你好,我忘记了一个细节是不可能带来雇主ID @MostyMostacho的数字? – mauro

0
select c.id_customer, c.name, p.name_product, p.code, p.price 
from products p 
    inner join products_to_employer pte on (pte.id_product = p.id_product) 
    inner join employers e on (e.id_employer = pte.id_employer) 
    inner join customers c on (c.id_customer = e.id_customer) 
where c.id_customer = 4