douou1872 2012-07-26 15:52
浏览 99
已采纳

如何使用PHP / mySQL查询一个表中存在的条目而不是另一个表中的条目?

I want to query only the entries in table2 which contains a "course" value and "course" does not exist in table1. I initially inner joined table1 to table2 based on the "course" value. Here's what I have so far, which doesn't work:

    $query = "SELECT value1,value2,value3 FROM table2 INNER JOIN table1 USING(course)
            WHERE table2.sem = '$semester' AND NOT EXISTS (SELECT course FROM table1)
            ORDER BY course";
    $result = mysql_query($query2) or die(mysql_error());

    while ($row2 = mysql_fetch_array($result))
    {
        print_r($row);echo "<br><br>";
    }

This inner join code works:

    $query = "SELECT * FROM table1 INNER JOIN table2 USING(course) 
            WHERE table1.sem = '$semester'
            ORDER BY course";
    $result = mysql_query($query) or die(mysql_error());
  • 写回答

2条回答 默认 最新

  • douan7601 2012-07-26 15:55
    关注
    $query = "SELECT value1,value2,value3 FROM table2 
                WHERE table2.sem = '$semester' AND course IS NOT NULL
                AND course NOT IN(SELECT course FROM table1)
                ORDER BY course";
    

    EDIT: If you want an in depth explanation as to why to go this route instead of the left join (which will also work) check out this article:

    http://explainextended.com/2009/09/15/not-in-vs-not-exists-vs-left-join-is-null-sql-server/

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值