Search all the articles of a SQL query [closed]

-2

Hello everyone I have the following query in SQL

SELECT "mrp_bom"."name" AS "NAME", "mrp_bom"."code" AS "REFERENCE"
, "product_product"."name_template" AS "PRODUCT"
, "mrp_bom"."product_qty" AS "PRODUCT QTY"
, "product_uom"."name" AS "PRODUCT UOM"
, "mrp_bom"."type" AS "BOM TYPE"
, "mrp_routing"."name" AS "ROUTING"
, "mrp_bom"."date_start" AS "VALID FROM"
, "mrp_bom"."date_stop" AS "VALID STOP"

FROM "public"."mrp_bom" AS "mrp_bom"
, "public"."product_product" AS "product_product"
, "public"."product_product" AS "product_product_1"
, "public"."product_product" AS "product_product_2"
, "public"."product_product" AS "product_product_3"
, "public"."product_uom" AS "product_uom"
, "public"."mrp_routing" AS "mrp_routing" 

WHERE "mrp_bom"."product_id" = "product_product"."id" 
AND "mrp_bom"."product_id" = "product_product_1"."id" 
AND "mrp_bom"."product_id" = "product_product_2"."id" 
AND "mrp_bom"."product_id" = "product_product_3"."id" AND "mrp_bom"."product_uom" = "product_uom"."id" 
AND "mrp_bom"."routing_id" = "mrp_routing"."id"

The problem I have is that I only list the items that meet all the requirements ie all the products that have NAME; REFERENCE ....

How can I get the information out of those that are blank?

thanks!

    
asked by Montse Mkd 09.11.2017 в 20:51
source

1 answer

1

Try with LEFT JOIN .

Example:

SELECT
    "mrp_bom"."name" AS "NAME",
    "mrp_bom"."code" AS "REFERENCE",
    "product_product"."name_template" AS "PRODUCT",
    "mrp_bom"."product_qty" AS "PRODUCT QTY",
    "product_uom"."name" AS "PRODUCT UOM",
    "mrp_bom"."type" AS "BOM TYPE",
    "mrp_routing"."name" AS "ROUTING",
    "mrp_bom"."date_start" AS "VALID FROM",
    "mrp_bom"."date_stop" AS "VALID STOP"
FROM
    "public"."mrp_bom" AS "mrp_bom",
LEFT JOIN "public"."product_product" AS "product_product" ON "mrp_bom"."product_id" = "product_product"."id"
LEFT JOIN "public"."product_product" AS "product_product_1" ON  "mrp_bom"."product_id" = "product_product_1"."id"
LEFT JOIN "public"."product_product" AS "product_product_2" ON "mrp_bom"."product_id" = "product_product_2"."id"
LEFT JOIN "public"."product_product" AS "product_product_3" ON "mrp_bom"."product_id" = "product_product_3"."id"
LEFT JOIN "public"."product_uom" AS "product_uom" ON "mrp_bom"."product_uom" = "product_uom"."id"
LEFT JOIN "public"."mrp_routing" AS "mrp_routing" ON "mrp_bom"."routing_id" = "mrp_routing"."id";
    
answered by 09.11.2017 / 22:44
source