我有一张桌子上有关于瑞典公司(tblforetag)的信息,一张有省(tbllan)的表和一张有城市的表(tblstad)。城市链接到具有ID号的省份,公司表格具有城市名称列(varchar)。
如何搜索一个省的所有公司?
我已经摆弄了连接,但没有让它工作。我现在有了这个代码,但它只能搜索公司名称和城市(在公司表中):
$sql = "
SELECT *,
MATCH(tblforetag.foretag) AGAINST(:keywords) AS kr
FROM tblforetag
WHERE MATCH(tblforetag.foretag) AGAINST(:keywords)
";
$sql .= $locisset ? "AND tblforetag.stad LIKE :location" : "";
$sql .= " LIMIT $offset, $rpp";
$query = $conn->Prepare($sql);
$query->BindValue(':keywords', $keywords);
if($locisset) $query->BindValue(':location', "%$location%");
$query->Execute();
答案 0 :(得分:0)
我不知道你的表格结构,但沿着这些方面应该可以解决这个问题:
SELECT FROM companies
LEFT JOIN cities ON (companies.city_id = cities.id)
LEFT JOIN regions ON (cities.region_id = regions.id)
WHERE region.name = 'your region'
这将为您提供该特定地区的公司。
答案 1 :(得分:0)
我认为公司表中的city_name列更适合city_id。
SELECT a.*, p.provincename
FROM companies a, cities c, provinces p
WHERE a.city_name = c.city_name
AND c.city_id = p.city_id
AND p.province_id = 5 // give your province id here