对于具有值的列,Left Join 返回 null

Left Join returned null for columns that have values

我有 2 个 table:

table1:

id  |   item_id    |   item_name
1   |      1       |     apple

table2:

id  |   item_id    |   item_price

Table 1 有一些数据,table 2 还没有任何数据,但我想在 html table 中显示它们。我加入 2 tables 希望得到一个 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,这是我用来加入 tables 的代码:

database.select ('*') from ('table1).leftJoin('table2', 'table1.item_id', 'table2.item_id').then(function(data) {
console.log(data)
};

我是不是加入错了?为此,我正在使用 node express 服务器和 postgresql 数据库。我希望 id 和 item_id 不要 return null 因为它们有值。或者除了加入 tables 之外,是否有办法从所有列中获取所有值?

我不知道 knex.js 但我会尝试 database.select('table1.*')....

我猜是列名覆盖的问题。做一些像-

database('table1')
.leftJoin('table2', 'table2.item_id', 'table1.item_id')
.columns([
    'table1.id',
    'table1.item_id',
    'table1.item_name',
    'table2.price'
    ])
.then((results) => {

})