skip to Main Content

I try to multiple select in MySql but it doesn’t work.

Example :

SELECT (SELECT column1, column2 FROM table1 WHERE column3='something') AS query1,
(SELECT column4 FROM table1 WHERE column4='something') AS query2

And the result i try to have is something similar to this :

[{query1}, {query2 : [...]}]

query1 always will have only 1 row but query2 can will have multiple row

Can someone help me please ?

2

Answers


  1. Maybe try this way:
    WITH query 1 AS (Select …..),
    query 2 AS (select …),
    query3 AS ( SELECT * FROM query 1
    UNION ALL
    SELECT * FROM query 2)

    SELECT * FROM query3

    Login or Signup to reply.
  2. Is this what you mean ? Join column wise?

    mysql> SELECT * FROM table1;
    +---------+---------+---------+---------+
    | Column1 | Column2 | Column3 | Column4 |
    +---------+---------+---------+---------+
    |       1 | XYZ     | ABC     |     255 |
    |       2 | YZEX    | AVF     |     567 |
    |       3 | AGH     | TYRE    |    5467 |
    |       4 | ZXS     | KJA     |     456 |
    |       5 | AAA     | FRES    |      56 |
    +---------+---------+---------+---------+
    

    And CTE to combine columns:

    with cte1 AS (SELECT column1, column2 FROM table1 WHERE column3='ABC'), 
    cte2 AS (SELECT column4 FROM table1 WHERE column4=567)
    SELECT * FROM cte1 JOIN cte2;
    
    +---------+---------+---------+
    | column1 | column2 | column4 |
    +---------+---------+---------+
    |       1 | XYZ     |     567 |
    +---------+---------+---------+
    1 row in set (0.00 sec)
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search