У меня такая интересная ситуация. Вот таблица с именем «mirror_data» =>Отсутствуют некоторые результаты запроса mysql
+------------+--------------+------+-----+---------+----------------+
| 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 | |
+------------+--------------+------+-----+---------+----------------+
и вот вторая таблица с именем «данные»
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| localParty | varchar(255) | YES | | NULL | |
| other columns ... |
+-----------------+--------------+------+-----+---------+-------+
Я извлечения информации из данных таблицы, но я хочу, чтобы, когда (из таблицы «данные») столбец localParty равен (таблица из «mirror_data») столбца local, затем извлекает информацию из столбца 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 та ble - два значения (и когда их будет больше, будет больше возможности не получать ожидаемый результат), как я могу написать запрос для достижения моей цели?
Просто хочу, чтобы получить всю информацию из таблицы «данных», но с изменением (localparty), если отмечена ситуация происходит (локальный = localparty)
Большого спасибо, пожалуйста, ответьте на один вопрос тоже, как этот запрос будет, если добавить удаленные, точно такие же колонки и таблицы, просто переименовать местный в удаленный, пожалуйста, ответьте :) – DaHaKa
пожалуйста, когда вы увидите, что ответ, спасибо :) – DaHaKa
@DaHaKa, обновленный ответ .. –