Reputation: 1251
I know this table isn't as it should be but it just is and it can't be changed.
My Table:
|carID | car1 | car2 | car3 |
-------------------------------------------------
| 1 | someCar 1 | someCar 2 | someCar 3 |
-------------------------------------------------
And I want the following result like it should be in a relation table:
|carID |car |
---------------------
|1 | someCar 1 |
|1 | someCar 2 |
|1 | someCar 3 |
Does someone know how to do this?
I tried something like this:
SELECT carId, car1, car2, car3 FROM cars WHERE carId = '1' GROUP BY car1, car2, car3
Upvotes: 0
Views: 44
Reputation: 56697
Create a union of three selects:
SELECT carID, car1 FROM cars WHERE carID = '1'
UNION ALL
SELECT carID, car2 FROM cars WHERE carID = '1'
UNION ALL
SELECT carID, car3 FROM cars WHERE carID = '1'
Please note that you need to use UNION ALL
, not just UNION
, because UNION
alone would leave out duplicates. For example, if car2
and car3
were the same, the result would only contain two records.
Upvotes: 0
Reputation: 16351
Try UNION ALL
:
SELECT CarID, Car1 FROM myTable WHERE carID='1'
UNION ALL
SELECT CarID, Car2 FROM myTable WHERE carID='1'
UNION ALL
SELECT CarID, Car3 FROM myTable WHERE carID='1'
Upvotes: 0
Reputation: 263723
UNION
SELECT CarID, car1 car FROM MyTable
UNION ALL
SELECT CarID, car2 car FROM MyTable
UNION ALL
SELECT CarID, car3 car FROM MyTable
Upvotes: 2