【发布时间】:2012-04-13 16:43:51
【问题描述】:
我有一个表客户,一个具有不同标准的表(然后使用这些标准进行评分)。另一个表中包含值及其键。
table company
==============
int company_id
varchar name
bool status
table criteria
==============
int criteria_id
varchar name
bool status
table company_criteria
==============
int company_id
int criteria_id
int criteria_value
varchar comments
现在我以选择框的形式显示所有标准,这些框将根据每个标准(已经在数据库中)有一个值。现在我希望用户能够搜索具有这些特定条件和存储价值的不同公司。
例如:表 customer 有一条 id 为 1 的记录 表条件有记录 1--->声誉,2-->薪水
table company_criteria 有以下记录:
company_id | criteria_id | criteria_value |
============================================
1 1 10
1 2 20
现在用户会看到两个选择框(请记住条件表中有两条记录)- 带有不同的选项。他从第一个选择框中选择了 10 个,从第二个选择框中选择了 20 个。我将如何编写查询 - 我尝试了以下
SELECT DISTINCT `co`.*
FROM (`company` co)
JOIN `company_criteria` cc ON `co`.`company_id` = `cc`.`company_id`
WHERE (`cc`.`criteria_id`=1 AND `cc`.`criteria_value`>=10) AND (`cc`.`criteria_id`=2 AND `cc`.`criteria_value`>=20)
它只是不起作用 - 总是没有结果。感谢任何帮助 - 谢谢。
【问题讨论】:
标签: mysql join where-clause