我有2张桌子:
表1:
id | item_id | item_name
1 | 1 | apple
表2:
id | item_id | item_price
表1中有一些数据,表2中还没有任何数据,但是我想在html表中显示它们。我希望加入2个表以获取json对象:
{id: 1, item_id: 1, item_name: apple, item_price: null}.
但是我得到了这个json对象,而不是它:
{id: null, item_id: null, item_name: apple, item_price: null}
使用knexjs,这是我用来联接表的代码:
database.select ('*') from ('table1).leftJoin('table2', 'table1.item_id', 'table2.item_id').then(function(data) {
console.log(data)
};
我加入有误吗?我为此使用节点快递服务器和一个PostgreSQL数据库。我希望id和item_id不返回null,因为它们具有值。还是有办法从联接表之外的所有列中获取所有值?谢谢你。
答案 0 :(得分:1)
我猜想列名覆盖的问题。做类似的事情-
database('table1')
.leftJoin('table2', 'table2.item_id', 'table1.item_id')
.columns([
'table1.id',
'table1.item_id',
'table1.item_name',
'table2.price'
])
.then((results) => {
})
答案 1 :(得分:0)
我不知道knex.js,但我会尝试database.select('table1.*')....