我会查看大量旧代码,看看我能用我学到的新东西来优化它们。人们觉得有一种更清洁的方法,但我无法弄清楚是什么!
我确实有以下表格,可以概括为:
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