我有两个表需要搜索,我在这里列出了重要的表和字段:
Table: FAQs
Columns: id, title
Table: FIELD_VALUES
Columns: id, value因此,基本上,表常见问题包含一个问题“标题”,表FIELD_VALUES包含可以与表常见问题相关的信息。因此,在这种情况下,'value‘是HTML格式的答案。我需要做的是搜索表常见问题中的“标题”,并在表FIELD_VALUES中搜索“值”。然后,它应该只返回唯一的问题‘标题’表常见问题。
我已经从常见问题中返回了“标题”,使用:
SELECT title FROM FAQs WHERE title LIKE '%".$_REQUEST['term']."%'"这样做可以,但我想我需要做一些形式的联合,然后加入返回标题?
发布于 2014-07-25 18:12:25
我理解这一点,因为你希望在任何情况下都归还这个头衔。如果搜索与常见问题中的标题、FIELD_VALUES中的值匹配,或者两者匹配。那么您应该做一个连接:
SELECT FAQs.title FROM FAQs
JOIN FIELD_VALUES ON FIELD_VALUES.id = FAQs.id
WHERE FAQs.title LIKE '%".$_REQUEST['term']."%' OR
FIELD_VALUES.value LIKE '%".$_REQUEST['term']."%'发布于 2014-07-25 18:05:13
如果将外键添加到FIELD_VALUES表中,则应该能够实现所需的目标:
Table: FAQs Columns: id, title
Table: FIELD_VALUES Columns: id, faqId_FK, value
那么您的SQL看起来就像:
$title = SELECT * FROM FAQs WHERE title LIKE '%". $_REQUEST['term']."%';
if(empty($title)) {
$valueId = SELECT faqId_FK FROM FIELD_VALUES WHERE value LIKE '%". $_REQUEST['term']."%';
if(!empty($valueId)) {
$title = SELECT title FROM FAQs WHERE id = $valueId;
}
}
echo $title没有表格之间的某种链接,就不可能知道哪些值与哪个标题相匹配。
https://stackoverflow.com/questions/24961775
复制相似问题