【问题标题】:Need to build complex SQLite query需要构建复杂的 SQLite 查询
【发布时间】:2016-02-29 12:29:37
【问题描述】:

有两个 SQLite 表:

sh_item
id
title
..

sh_paramvalues
id
paramid
itemid
value

有一些我需要修改的查询

//$get[0] - search query from user
$this->q = "SELECT * 
              FROM sh_item 
             WHERE title LIKE '%".$get[0]."%' 
                OR descr LIKE '%".$get[0]."%' 
             LIMIT '".$this->page->start."','".$this->page->on1page."'";

我需要一些可以从 sh_paramvalues 中获取值 (LIKE '%".$get[0]."%') 的查询,其中 paramid='some my value' 和 itemid = id 在基本查询中使用 sh_item。

也许我需要使用 join,但我不擅长。

【问题讨论】:

    标签: php sql database sqlite


    【解决方案1】:

    试试:

    //$get[0] - search query from user
    $this->q = "SELECT * 
                  FROM sh_item si
                          INNER JOIN sh_paramvalues sp
                                ON si.id = sp.itemid
                 WHERE (si.title LIKE '%".$get[0]."%' 
                    OR si.descr LIKE '%".$get[0]."%' 
                    OR sp.value LIKE '%".$get[0]."%')
                   AND sp.paramid = 3
                 LIMIT '".$this->page->start."','".$this->page->on1page."'";
    

    【讨论】:

    • 没有工作.. 以及我如何不能获得所有值 sp.itemid,但只能在 paramid = 3 时获得(例如){一般错误:1 没有这样的列:sp.sh_paramvalues}跨度>
    • 抱歉,我已将表名作为您帖子中的一列。我的错。真正的列名是value 我会编辑它。并将从您的评论中添加 paramid 请求。
    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多