对于具有值的列,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) => {
})
我有 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) => {
})