使用Medoo数据库框架并尝试进行连接
$users = $db->select(
'users',
[
'[>] tournaments_users' =>
[
'tournaments_users.user_id' => 'users.uid'
]
], [
'users.uid',
'users.name',
'users.modifier',
'users.handicap',
'tournaments_users.tournament_id'
], [
'tournaments_users.tournament_id' => 1
'ORDER' => 'users.username ASC'
]
);
foreach( $users as $u) {
echo $u['name'].'<br>';
}选择将导致为foreach()提供的无效参数。
从列中移除“tournaments_users.tournament_id”和“位置”部分使查询工作正常,但没有显示正确的数据。
为什么查询无效?
发布于 2014-07-18 07:08:44
将联接选择更改为
'[>]tournaments_users' =>
[
'uid' => 'user_id'
]用无效的论据解决了这个问题。
发布于 2015-09-22 10:11:46
medoo库(medoo0.9.6.2)目前不支持使用AND/OR join子句连接逻辑表达式。您只能使用medoo提供的查询($query)方法直接执行sql查询。对于您的示例,查询如下所示:
$data = $db->query("SELECT u.user_id, s.shirt_id FROM `cvs_users` u
LEFT JOIN `shirts` s
ON user_id = shirt_owner_id AND shirt_being_worn = 1
WHERE user_id = 1")->fetchAll();请注意结束时对fetchAll()的调用,以获取查询的数据。我遇到了同样的问题,并调试了medoo.php代码,发现和/或条件只考虑在where子句中。也许他们会在将来的更新中加入这个特性。
https://stackoverflow.com/questions/24804991
复制相似问题