У меня есть несколько таблиц с одинаковыми именами и типами полей.Таблицы точно такие же, за исключением их имен: table1
и table2
.Я буду SHOW CREATE TABLE table1
:
CREATE TABLE `table_!` (
`ip` varchar(500) NOT NULL,
`description` varchar(500) DEFAULT NULL,
`type` varchar(500) DEFAULT NULL,
PRIMARY KEY (`ip`),
UNIQUE KEY `ip_UNIQUE` (`ip`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Я делаю совместные запросы, подобные этому (хотя объединенный синтаксис старый, но я использовал это во всем проекте, поэтому я не предпочитаю вносить изменения сейчас):
SELECT COUNT(`table2`.`ip`)
FROM `ips`.`table2`, `ips`.`table1`
WHERE `table2`.`ip` = `table1`.`ip`
AND (LOWER(`table1`.`description`) NOT LIKE 'str1%'
AND (LOWER(`tabl1`.`description`) LIKE '%-str2-%'
OR LOWER(`table1`.`description`) LIKE '%-str3-%'
)
)
AND (LOWER(`table2`.`description`) LIKE 'str1%'
AND LOWER(`table2`.`description`) NOT LIKE '%-str2-%'
AND LOWER(`table2`.`description`) NOT LIKE '%-str3-%'
);
Есть ли что-то неправильное или меры предосторожности, которые я должен принять в таком случае?
Я пока не вижу проблемы.За исключением того, что однажды я ошибочно назвал третье имя таблицы table3
в таком выражении FROM
(также table3
похоже на table1
и table2
).
FROM table1, table2, table3
Хотя я включил егов ОТ, но не использовал его, и не сделал совместных отношений.Только что присоединились table1
и table2
.
Результаты, которые я получил, отличались от тех, которые были получены при удалении table3
из оператора FROM.