我知道这个问题已被提出,但我没有找到解决我具体问题的可行答案。
我有一个表(在MySQL中)有4列(名字,姓氏,帐号和组织)。在我的程序中,我想创建4个下拉(组合框)(每列一个)。组合框包含该列的唯一值。现在,我通过使用4个单独的SQL查询然后填充每个组合框来完成它。我试图通过执行单个查询以获取所有值然后在获得结果后将它们分离到组合框中来更快地查看是否有更快的方法。但我无法弄清楚如何使用单个查询来完成它,我已经尝试了本书中的每个连接并使用派生表和我能想到的所有内容,但没有任何效果。
基本上我的名字组合框,需要包含表中所有不同的名字,第二个组合框包含所有不同的姓氏,第三个是不同的名字。数字和第4,在任何组合框中没有重复的不同组织。
这是可能的,如果是这样的话怎么样?感谢。
这就是我目前正在做的事情:
Select distinct firstname from t1 order by firstname;
' populate my combo box
Select distinct lastname from t1 order by lastname;
; populate my combo box
etc...
答案 0 :(得分:1)
你在这里做的基本上是最佳策略。这就是SQL的工作原理。
如果您同时尝试同时列出所有firstname
和lastname
条目,请考虑输出结果。 6个不同的名字和8个不同的姓氏可以获得多少行? 6? 8? 48?
如果速度太慢,您需要做的就是INDEX
您的列,以便DISTINCT
操作本身更快。