【发布时间】:2014-09-17 15:57:40
【问题描述】:
我有 2 个表需要搜索,我在这里列出了重要的表和字段:
Table: FAQs
Columns: id, title
Table: FIELD_VALUES
Columns: id, value
所以基本上,常见问题解答表包含一个问题“标题”,而 FIELD_VALUES 表包含与常见问题解答表中的问题相关的信息。因此,在这种情况下,“价值”是 HTML 格式的答案。我需要做的是在表常见问题解答中搜索“标题”,并在表 FIELD_VALUES 中搜索“值”。然后它应该只从常见问题解答表中返回唯一的问题“标题”。
我已经使用以下方法从常见问题解答中返回“标题”:
SELECT title FROM FAQs WHERE title LIKE '%".$_REQUEST['term']."%'"
这行得通,但我猜我需要执行某种形式的 UNION 然后 JOIN 来返回标题?
【问题讨论】:
-
我不完全确定您想要实现什么...这两个表之间的关系是什么?是一对多(一个有多个值的常见问题解答)吗?如果是,那么 FIELD_VALUES 中的外键名称是什么?
-
1 'title' 将永远只有 1 'value' 通过 'id' 与之相关。在理想的世界中,我会更改数据库结构,但我不能。
-
好的。因此,如果我理解正确,FAQ 和 Value 总是存在并且具有相同的 id 对吗?所以你需要的不是联合,而是加入试试这个: select f.title, fv.value from FAQs f inner join FIELD_VALUES fv on f.id=fv.id where title LIKE '%".$_REQUEST['term'] ."%'"
-
您可能还想了解 SQL 注入,因为您在这里所做的事情非常危险
-
是的,我会考虑安全地完成这一切。我只是想得到正确的方法。我一有空就会考虑一下你的建议。
标签: php jquery mysql jquery-ui jquery-ui-autocomplete