I cannot solve this problem for many hours.
This is my table
t1:
–––––––––––––––––––––––––––––––––––
| id | text | lang | transl_id |
–––––––––––––––––––––––––––––––––––
| 1 | first | en | 222 |
–––––––––––––––––––––––––––––––––––
| 2 | second | de | 222 |
–––––––––––––––––––––––––––––––––––
| 3 | jkj | de | 234 |
–––––––––––––––––––––––––––––––––––
| 4 | 89080 | de | 235 |
–––––––––––––––––––––––––––––––––––
Here is my query:
SELECT
transl_id AS property,
(SELECT text FROM t1 WHERE lang='en') AS value1,
(SELECT text FROM t1 WHERE lang='de') AS value2,
FROM t1
It returns following table:
–––––––––––––––––––––––––––––––––––
| property | value1 | value2 |
–––––––––––––––––––––––––––––––––––
| 222 | first | |
–––––––––––––––––––––––––––––––––––
| 222 | | second |
–––––––––––––––––––––––––––––––––––
| 234 | jkj | |
–––––––––––––––––––––––––––––––––––
| 235 | 89080 | |
–––––––––––––––––––––––––––––––––––
Each row has either value1 or value2, never both. Is there a way to group results so that rows with equal values for property field would be in one row? I mean something like this:
–––––––––––––––––––––––––––––––––––
| property | value1 | value2 |
–––––––––––––––––––––––––––––––––––
| 222 | first | second |
–––––––––––––––––––––––––––––––––––
...
Try this query:
See this SQLFiddle
Tried adding more values in the table and got the desired result in this SQLFiddle.