У меня такая интересная ситуация.Вот таблица с именем «mirror_data» =>
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id_mir | int(11) | NO | PRI | NULL | auto_increment |
| local | varchar(255) | YES | | NULL | |
| local_mir | varchar(255) | YES | | NULL | |
| remote | varchar(255) | YES | | NULL | |
| remote_mir | varchar(255) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
, а вот вторая таблица с именем «data»
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| localParty | varchar(255) | YES | | NULL | |
| other columns ... |
+-----------------+--------------+------+-----+---------+-------+
Я получаю информацию из таблицы данных, но яхотите, чтобы, когда (из таблицы «data») столбец localParty равнялся столбцу (таблица из «mirror_data») локального, то извлекал информацию из столбца local_mir (также из таблицы «mirror_data»), иначе, когда отмеченные столбцы не равны друг другу,получить информацию от localParty.Но я хочу получить всю информацию из таблицы «данных».
здесь добавлены значения mirror_data =>
+--------+--------+-----------+--------+------------+
| id_mir | local | local_mir | remote | remote_mir |
+--------+--------+-----------+--------+------------+
| 1 | 715715 | Something | NULL | NULL |
| 2 | 1000 | some | NULL | NULL |
+--------+--------+-----------+--------+------------+
, и вот мой код, как я "делаю" это =>
select IF(o.localParty=m.local,m.local_mir,o.localParty) FROM data as o, mirror_data as m limit 0,10;
, а также здесьрезультат того, что делает этот запрос (пропуская некоторые значения) =>
+---------------------------------------------------+
| IF(o.localParty=m.local,m.local_mir,o.localParty) |
+---------------------------------------------------+
| Something |
| 715715 |
| 14 |
| 14 |
| Something |
| 715715 |
| Something |
| 715715 |
| 978080 |
| 943080 |
+---------------------------------------------------+
Как вы видели, число 715715 не изменяется в этом случае, потому что в таблице mirror_data есть два значения (и когда их будет больше, это будетбольше возможностей не получить ожидаемый результат), как я могу написать запрос для достижения моей цели?
Просто хочу получить всю информацию из таблицы «данных», но с изменением (localparty), если произойдет отмеченная ситуация (local =localparty) * * тысяча двадцать-одна