たとえば、次のような2つのテーブルがあります。withRelated本棚を使用して結合テーブルから特定の列を取得する方法
table1 {Id, Name, Description}
table2 {Id, Table1Id, Name, Amount}
bookshelfJSの場合、withRelatedのようなものを使用すると、
new table1({Id: 1})
.fetchAll({
withRelated: ['Childs']})
.then(function(rows) {
callback(null, rows);
});
私の結果は次のようなものでした。私はを取得する必要はありません
{results: [{Id: '', Name: '', Description: '', Childs: [{Id: '', Name: '', Amount: 123}]}]}
はチャイルズリストにをTable1Id。出力にどのような列を指定できますか?
更新
マイモデル;
table1 = bookshelf.Model.extend({
tableName: 'table1',
Childs: function() {
return this.hasMany(table2, 'Table1Id');
}
});
table2 = bookshelf.Model.extend({
tableName: 'table2',
Parent: function() {
return this.belongsTo(Table1);
}
});
私はTable1Id
new table1({Id: 1})
.fetchAll({
withRelated: ['Childs':function(qb) {
qb.select('Id', 'Name', 'Description');
}]})
.then(function(rows) {
callback(null, rows);
});
を選択していないよ場合は、[]チャイルズのために空を返します。
する必要があります。
new table1({Id: 1})
.fetchAll({
withRelated: ['Childs':function(qb) {
qb.select('Id', 'Table1Id', 'Name', 'Description');
}]})
.then(function(rows) {
callback(null, rows);
});
私が親ではない場合は動作しませんId :(ありがとうございます –
あなたのクエストを更新できますか?あなたは何を試してみることができるように新しいクエリで? – uglycode