Я пытаюсь построить оператор SQL, в котором встречается отношение многих ко многим. По сути, я хочу получить данные о бизнесе, основанные на 2 категориях, некоторые из которых включены в обе категории и запрашиваются через почтовый индекс. Пока что у меня есть часть с почтовым индексом, но она не различает категорию, и у меня нет таблицы для категорий, а также какой самый эффективный способ сделать это?
Здесь приведен SQL-оператор:
$query = "SELECT * FROM contacts WHERE zipcode in ( " . join(",", $zipcodes) . " ) ";
Вот структура таблицы. очень просто.
`company_name` char(55) NOT NULL,
`phone` char(20) default NULL,
`email` char(40) default NULL,
`address` text,
`city` text,
`state` text,
`zipcode` varchar(5) default NULL,
`id` varchar(10) NOT NULL,
`geo_id` varchar(20) NOT NULL,
`website` varchar(40) NOT NULL,
`vendor_id` varchar(10) NOT NULL
`id` int(11) unsigned NOT NULL auto_increment,
`zip_code` varchar(5) character set utf8 collate utf8_bin NOT NULL,
`city` varchar(50) character set utf8 collate utf8_bin default NULL,
`county` varchar(50) character set utf8 collate utf8_bin default NULL,
`state_name` varchar(50) character set utf8 collate utf8_bin default NULL,
`state_prefix` varchar(2) character set utf8 collate utf8_bin default NULL,
`area_code` varchar(3) character set utf8 collate utf8_bin default NULL,
`time_zone` varchar(50) character set utf8 collate utf8_bin default NULL,
`lat` float NOT NULL,
`lon` float NOT NULL,
PRIMARY KEY (`id`),
KEY `zip_code` (`zip_code`)
У меня нет таблицы категорий. Я составлю таблицу с 2 категориями (розничная торговля и гостиничный бизнес). Проблема только в том, как я могу запросить эту таблицу, чтобы определить, есть ли контакт?
розничная
гостеприимство
или оба ...