首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Medoo框架-选择联接

Medoo框架-选择联接
EN

Stack Overflow用户
提问于 2014-07-17 13:31:20
回答 2查看 2.4K关注 0票数 0

使用Medoo数据库框架并尝试进行连接

代码语言:javascript
复制
$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”和“位置”部分使查询工作正常,但没有显示正确的数据。

为什么查询无效?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-18 07:08:44

将联接选择更改为

代码语言:javascript
复制
        '[>]tournaments_users' => 
        [
            'uid' => 'user_id'
        ]

用无效的论据解决了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2015-09-22 10:11:46

medoo库(medoo0.9.6.2)目前不支持使用AND/OR join子句连接逻辑表达式。您只能使用medoo提供的查询($query)方法直接执行sql查询。对于您的示例,查询如下所示:

代码语言:javascript
复制
$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子句中。也许他们会在将来的更新中加入这个特性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24804991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档