如何获得表2中没有的价值

时间:2013-10-07 09:25:51

标签: php sql codeigniter

如何获取table_2中不在table_2中的id 我的桌子看起来像这种类型 的 TABLE_1

---------------------------------------------
|  id      |    user                        |
---------------------------------------------
|   1      |    Jack                        |
---------------------------------------------
|   2      |    John                        |
---------------------------------------------

TABLE_2

------------------------------------------
|  web_id      |    website              |
------------------------------------------
|   2          |   Facebook              |
------------------------------------------
|   3          |   Google+               |
------------------------------------------

我想 codeigniter 查询

$this->db->select("*");
        $this->db->from("table_1");
        $this->db->where_not_in('id', "table_2.web_id");
        return $this->db->get();

3 个答案:

答案 0 :(得分:2)

试试这个

 SELECT id
 FROM table_1
 WHERE id NOT IN
 (
       SELECT web_id FROM table_2 WHERE 1
 );

使用CodeIgniter Active记录查询将如下

  $this->db->select('*');
  $this->db->where('id NOT IN (SELECT web_id FROM table_2 WHERE 1)', NULL, FALSE);
  $query = $this->db->get('table_1');

答案 1 :(得分:0)

这样的事情会这样做(取决于你使用的SQL的风格,你可能需要稍微调整语法):

SELECT id
FROM table_1
WHERE id NOT IN (SELECT web_id FROM table_2)

但是,我没看到这是什么用途。这两个表之间没有可识别的链接,因此知道table_1中id为1,但table_2中没有web_id 1,这似乎不是一个有用的信息。

答案 2 :(得分:0)

select t1.id
from table_1 t1
left join table_2 t2 on t1.id = t2.web_id
where t2.web_id is null