How to put 2 select in mysql

4

I have 2 select which are basically identical, changing only 1 table. I'm trying to put the 2 in a single select, but I'm not getting it.

Follow the select:

SELECT DISTINCT
            a.id,
            a.unidade,
            a.posicao,
            a.nome,
            a.peso
        FROM
            produtos a,
            produtos_pedidos b
        WHERE
            a.id = b.id_produto
            and b.id_pedido IN (1,2)
        ORDER BY a.nome

Select 2:

 SELECT DISTINCT
            a.id,
            a.unidade,
            a.posicao,
            a.nome,
            a.peso
        FROM
            produtos a,
            pedidos_barganha b
        WHERE
            a.id = b.id_produto
            and b.id_pedido IN (1,2)
        ORDER BY a.nome

Does anyone know how I can put the 2 together?

    
asked by anonymous 03.02.2017 / 17:37

2 answers

5

You will have to use the UNION operator between them, in your case it would look like this:

SELECT DISTINCT
    a.id,
    a.unidade,
    a.posicao,
    a.nome,
    a.peso
FROM
    produtos a,
    produtos_pedidos b
WHERE
    a.id = b.id_produto
    and b.id_pedido IN (1,2)

UNION

SELECT DISTINCT
    p.id,
    p.unidade,
    p.posicao,
    p.nome,
    p.peso
FROM
    produtos p,
    pedidos_barganha pb
WHERE
    p.id = pb.id_produto
    and pb.id_pedido IN (1,2)
ORDER BY nome

Note that if you use UNION the Order BY should be written only at the end of your entire query.

In addition to UNION , you can also use UNION ALL in this link you can see the difference among them and choose the one that will suit you better

    
03.02.2017 / 17:41
3

Use the UNION.

SELECT DISTINCT
    a.id,
    a.unidade,
    a.posicao,
    a.nome,
    a.peso
FROM
    produtos a,
    produtos_pedidos b
WHERE
    a.id = b.id_produto
AND b.id_pedido IN (1, 2)
UNION
    SELECT DISTINCT
        c.id,
        c.unidade,
        c.posicao,
        c.nome,
        c.peso
    FROM
        produtos c,
        pedidos_barganha d
    WHERE
        c.id = d.id_produto
    AND d.id_pedido IN (1, 2)
    ORDER BY
        c.nome
    
03.02.2017 / 17:40