首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用联接和匹配进行MySQL搜索

使用联接和匹配进行MySQL搜索
EN

Stack Overflow用户
提问于 2013-01-17 19:38:00
回答 2查看 113关注 0票数 0

我有一个表(tblforetag),其中一个表显示瑞典公司的信息(Tblforetag),另一个表显示省份(tbllan),另一个表显示城市(tblstad)。城市通过id号链接到省份,并且公司表有一个城市名称(varchar)列。

如何搜索一个省份的所有公司?

我一直在摆弄连接,但没有让它工作。我现在有这个代码可以工作,但它只会搜索公司名称和城市(在公司表中):

代码语言:javascript
复制
$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();
EN

回答 2

Stack Overflow用户

发布于 2013-01-17 19:46:28

我不知道你的表格结构,但下面的一些东西应该能起到作用:

代码语言:javascript
复制
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'

这将为您提供该特定地区的公司。

票数 0
EN

Stack Overflow用户

发布于 2013-01-17 20:26:14

我认为将companies表中的city_name列改为city_id会更好。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14378223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档