作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个表 user 表和 book 表。
user_id
1
2
3
4
5
book
user_id book_id
1 1
2 2
4 5
我想要那些不存在于 book 表中的 user 表中的记录。我该怎么做?我尝试了这段代码,但还有其他有效的方法吗?
$cri_user = new CDbCriteria;
$cri_user->select = "t.user_id";
$cri_user->condition = "t.user_id NOT IN (select tu.user_id from books as tu group by tu.user_id)";
$model_user = User::model()->findAll($user);
如果我得到 mysql 形式的解决方案,我可以将它转换成 yii。
最佳答案
还有一些方法可以做到这一点:
方法一:
$sql = "select t.* from user t left join book b on b.user_id = t.user_id where b.user_id is null";
$records = Yii::app()->db->createCommand($sql)->queryAll();
print_r($records);
方法二:
$records = Yii::app()->db->createCommand()
->select('t.*')
->from('user t')
->leftJoin('book b', 'b.user_id = t.user_id')
->where('b.user_id is null')
->queryAll();
print_r($records);
关于mysql - 如何从一个表中获取另一个表中不存在的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34260178/
我是一名优秀的程序员,十分优秀!