Имеется две таблицы, city и country.
DESCRIBE city;
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| cid | int(11) | NO | | NULL | |
| name | varchar(255) | NO | | NULL | |
| salary | float | NO | | NULL | |
+--------+--------------+------+-----+---------+----------------+
4 rows in set (0.000 sec)
где cid - id страны, name - название, salary - средняя зарплата по сотрудникам
DESCRIBE country;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| is_here | tinyint(4) | NO | | NULL | |
+---------+--------------+------+-----+---------+----------------+
3 rows in set (0.000 sec)
где name - название, is_here - регион присутствия
В данный момент использую такой запрос:
SELECT
city.id,
city.name,
country.name,
salary,
country.is_here
FROM city
LEFT JOIN country ON city.cid = country.id
GROUP BY city.id
На что получаю
+----+-----------+-------+--------+---------+
| id | name | name | salary | is_here |
+----+-----------+-------+--------+---------+
| 1 | Madrid | Spain | 4720 | 0 |
| 2 | Barcelona | Spain | 3000 | 0 |
| 3 | Rome | Italy | 5000 | 1 |
+----+-----------+-------+--------+---------+
3 rows in set (0.000 sec)
Что хотелось бы? Там, где региона присутствия нет, "имитировать" его и добавлять к зарплате +2000 у.е
+----+-----------+-------+--------+---------+
| id | name | name | salary | is_here |
+----+-----------+-------+--------+---------+
| 1 | Madrid | Spain | 4720 | 0 |
| 2 | Barcelona | Spain | 3000 | 0 |
| 1 | Madrid | Spain | 6720 | 1 |
| 2 | Barcelona | Spain | 5000 | 1 |
| 3 | Rome | Italy | 5000 | 1 |
+----+-----------+-------+--------+---------+
5 rows in set (0.000 sec)