php - 比较两个函数的结果,如果相同则隐藏结果

标签 php mysql

我正在使用 2 个函数。第一个函数提取以下信息:

$availcourse = "SELECT * FROM organization_courses oc left join course c on oc.courseid=c.id WHERE organizationid=$orgid ORDER By category";
$aresults = mysql_query($availcourse);

第二个函数提取此信息:

$depcourse = "SELECT * FROM organization_dep_courses odc left join course c on odc.courseid=c.id WHERE depid=$departmentid ORDER By category";
$dcresults = mysql_query($depcourse);

我的问题是,如果函数 #1 中的记录相同,如何防止它们在函数 #2 中显示?两个结果中明显的相似之处是 courseid

我希望这是有道理的。

最佳答案

如果organization_coursesorganization_dep_courses具有相同的列数并且列的顺序相同,则可以使用MySQL的UNION .

$query = '
  SELECT *
  FROM (
    (SELECT *
     FROM organization_courses oc
     LEFT JOIN course c ON oc.courseid = c.id
     WHERE organizationid = $orgid)
    UNION
    (SELECT *
     FROM organization_dep_courses odc
     LEFT JOIN course c ON odc.courseid = c.id
     WHERE depid = $departmentid)
  ) q
  GROUP BY q.courseid
  ORDER BY q.category
';

注意:您的 SQL 代码容易受到 SQL Injection 的攻击.

关于php - 比较两个函数的结果,如果相同则隐藏结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725967/

相关文章:

php - 如何纠正 Composer 的 [Composer\Downloader\TransportException] 错误

php - 将 1 行,1 字段查询直接保存到变量中,而不是使用 while 循环

php - mySQL select语句中所有类别查询

php - 在 PHP 中创建和使用魔术方法

mysql - 在 MySQL 中将列数据类型从 VARCHAR 转换为 DATE?

mysql - 从另一个表中选择具有最大时间戳的记录

php - 如何自动从数据库获取当前日期的数据

MySQL 查询查找具有肤色变体的表情符号记录

mysql - MySQL、VS2010 Pro、ASP .NET MVC3 的连接字符串

python - 在python中将url添加到mysql行