如何根据SQLite

时间:2016-03-31 14:43:14

标签: php sql sqlite

我会查看大量旧代码,看看我能用我学到的新东西来优化它们。人们觉得有一种更清洁的方法,但我无法弄清楚是什么!

我确实有以下表格,可以概括为:

Table summary
-------------------------    
category  | group | rows | priority
------------------------
1         | 1     | 3    | 1
2         | 1     | 3    | 2
3         | 2     | 2    | 1
4         | 2     | 2    | 2
5         | 2     | 2    | 3

Table article
-------------------------------    
article   | category | somedata
-------------------------------
1         | 1        | blabla
2         | 1        | blabla
3         | 2        | blabla
4         | 2        | blabla
5         | 1        | blabla
6         | 1        | blabla
7         | 1        | blabla
8         | 2        | blabla
9         | 3        | blabla
10        | 3        | blabla
11        | 3        | blabla
12        | 4        | blabla
13        | 4        | blabla
14        | 4        | blabla
15        | 4        | blabla
16        | 5        | blabla
17        | 5        | blabla
18        | 5        | blabla
19        | 5        | blabla

我目前的方法是在两个请求中执行此操作,例如(超级简化以便阅读)

$category = $db->query("SELECT category, group, rows FROM summary ORDER BY 
group, priority");
$feed = $db->prepare("SELECT article, someData FROM article 
WHERE category = :category LIMIT 0,:rows");

foreach($category as $cat){
    $feed->bindParam(":category",$cat['category'], SQLITE3_INT);
    $feed->bindParam(":rows",$cat['rows'], SQLITE3_INT);
    $feed->execute();
    //some code,exception and data processing handling 
}

是否可以直接在SQLite3中的一个请求中执行此操作并获得类似以下响应的内容?

-------------------------    
category  | group | article | someData
------------------------
1         | 1     | 1       | blabla 
1         | 1     | 2       | blabla 
1         | 1     | 5       | blabla 
2         | 1     | 3       | blabla 
2         | 1     | 4       | blabla 
2         | 1     | 8       | blabla 
3         | 2     | 9       | blabla 
3         | 2     | 10      | blabla 
4         | 2     | 12      | blabla 
4         | 2     | 13      | blabla 
5         | 2     | 16      | blabla 
5         | 2     | 17      | blabla 

0 个答案:

没有答案