3

我想知道从多个表中获取自动完成结果的最有效方法是什么?

警告是;我希望能够确定记录来自哪个表。

例如,给定这些示例表:

+- People
   +- id
   +- name
   +- age

+- Places
   +- id
   +- name
   +- distance

+- Things
   +- id
   +- name
   +- color

虽然包含一些对此问题任意的数据,但这里的主要焦点是name列(尽管这些可能是其他内容,或者每个正在查询的表有多个)

无论如何,我试图弄清楚如何查询这些表中的每一个以获取自动完成的数据,并返回数据以及它来自哪个表。例如,字母的输出A可能如下所示:

Apple (Things)
Amy (People)
Aaron (People)
Anaheim (Places)
Axe (Things)

这最好通过单个查询还是跨多个表的多个查询来完成?

提前致谢 :)

4

1 回答 1

4

您可以在一个查询中使用 at union 执行此操作:

SELECT name, 'Things' as source FROM Things WHERE name LIKE 'A%'
UNION ALL
SELECT name, 'People' as source FROM People WHERE name LIKE 'A%'
UNION ALL
SELECT name, 'Places' as source FROM Places WHERE name LIKE 'A%'

现在您将获得匹配name表和源表,并且您可以为您的自动完成下拉内容很好地格式化它。

于 2011-02-19T14:28:06.563 回答