在这种情况下进行选择的最佳方法是什么,并在不使用php中的嵌套查询的情况下输出它?我宁愿用一个查询来创建它。
我的表格如下:
table1 id | items | ---|-------| 1 | item1 | 2 | item2 | 3 | item3 | .. | .. | table2 id | itemid | comment | ---|--------|----------| 1 | 1 | comment1 | 2 | 1 | comment2 | 3 | 2 | comment3 | 4 | 3 | comment4 | 5 | 3 | comment5 | 6 | 3 | comment6 | .. | .. | .. |
这是我正在寻找的输出。
item1 comment1 comment2 item2 comment3 item3 comment4 comment5 comment6
提前致谢
答案 0 :(得分:4)
SQL看起来像这样:
SELECT
items,
comment
FROM
table1 JOIN
table2 ON table1.id = table2.itemid
(基于SQL风格的微小差异)
(伪)代码看起来像这样
var previousCategory : string;
previousCategory := "";
foreach (var item : string in list)
begin
if (item != previousCategory)
begin
Output(Newline() + sqlResult["item"] + Newline());
end
Output(sqlResult["comment"] + Newline())
end
对不起,这不是PHP,我没有方便的PHP编译器,所以我认为一个伪造的代码可以运行得很好。
答案 1 :(得分:4)
使用JOIN s。
SELECT table1.items,table2.comment
FROM table1
LEFT JOIN table2 ON table2.itemid=table1.id
我使用了LEFT JOIN,因此它也会返回没有注释的项目。如果您不想要这种行为,请使用INNER JOIN。 您将对格式化结果进行一些小的工作,但您应该能够自己完成。