Php 更快的MySQL连接以获得不同的记录

Php 更快的MySQL连接以获得不同的记录,php,mysql,Php,Mysql,在回顾了相关的问题之后,似乎没有一个问题能够解决我的问题,因此: 我有两张包含课程信息的表格。目前,一个表[course]包含近25k条记录,其中包含CourseName、CourseCode、Term、讲师等字段。第二个表[courseCatalog]仅包含CourseCode和CourseName 我的应用程序允许用户调出一名讲师,并从允许他们授课的列表中批准课程 我使用自动建议(jqueryajax对象->PHP文件->MySQL和返回)构建了一个搜索来查找课程。返回后,用户可以单击课程,

在回顾了相关的问题之后,似乎没有一个问题能够解决我的问题,因此:

我有两张包含课程信息的表格。目前,一个表[course]包含近25k条记录,其中包含CourseName、CourseCode、Term、讲师等字段。第二个表[courseCatalog]仅包含CourseCode和CourseName

我的应用程序允许用户调出一名讲师,并从允许他们授课的列表中批准课程

我使用自动建议(jqueryajax对象->PHP文件->MySQL和返回)构建了一个搜索来查找课程。返回后,用户可以单击课程,将其标记为讲师认可的课程(对PHP&MySQL的另一个Ajax调用)

问题是,大表中的一些课程不在小表中,反之亦然(根据数据的实际来源,消除这个问题是一个更困难的问题,我离题了)

如果我加入某个特定领域的表格,某些课程就会被遗漏。左连接似乎仍然会产生同样的问题,因为我被迫在一个字段上连接

如果我只调用两个表:

SELECT DISTINCT course.CourseCode, course.CourseName
FROM course, courseCatalog
查询需要花费很长时间,这使得搜索功能变得无用,因为加载建议需要很长时间

我想按顺序得到一个清晰的课程列表,无论它们是出现在“课程”表中还是出现在“课程目录”表中……非常匆忙:)


有什么建议吗?我是否忽略了一些简单的事情?谢谢大家

您所说的永远需要的查询是一个完全冗余的笛卡尔连接,在这个连接中,您将生成一大堆额外的行(课程中的行数乘以课程中的行数)然后使用
DISTINCT
再次删除它们,留下
课程
表的原始内容。(结果与
从课程中选择不同的课程代码、课程名称相同

要从两个表中获得CourseCodes和CourseNames的不同列表,可以使用
UNION
操作符

SELECT CourseCode, CourseName
FROM course
UNION /*Will ensure DISTINCTness*/
SELECT CourseCode, CourseName
FROM courseCatalog
ORDER BY CourseCode, CourseName

好极了,我确信有一些操作符或语法可以把它去掉,现在它就燃烧起来了。谢谢你,马丁