2

如何获取不在 table_2 中的 table_1 id
我的表看起来像这种类型。
表格1

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

表_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();
4

3 回答 3

2

尝试这个

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

使用 CodeIgniter Active Records 查询将如下

  $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');
于 2013-10-07T09:30:24.287 回答
0

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

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

但是,我看不出这有什么用。这两个表之间没有可识别的链接,因此知道idtable_1 中有 1 但web_idtable_2 中没有 1 似乎不是有用的信息。

于 2013-10-07T09:29:39.117 回答
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
于 2013-10-07T09:30:38.120 回答