我有这个续集查询,它不返回预期的列。
db.conn.query(
" SELECT t1.id, t1.name, t2.name" +
" FROM category t1 " +
" LEFT OUTER JOIN parental t2 ON t1.id = t2.id "
这是续集日志:
> Executing (default): SELECT t1.id, t1.name, t2.name FROM category t1
> LEFT OUTER JOIN parental t2 ON t1.id = t2.id
这是结果表:
┌─────────┬────┬──────┐
│ (index) │ id │ name │
├─────────┼────┼──────┤
│ 0 │ 1 │ 'L' │
│ 1 │ 2 │ '10' │
│ 2 │ 3 │ '12' │
请注意,结果表中不存在列t2.name
。
但是,我在mySql工作台中做了同样的查询,我得到了第三列。
有人对这个问题有想法吗?
提前感谢!
似乎 sequelize 使用键映射将结果集加载回应用程序中。您需要为所有列提供不同的列名称。
例如,您可以将第一行更改为:
SELECT t1.id, t1.name, t2.name as name2
以分别以id
、name
和name2
的形式接收所有三列。表达式as <alias>
为 SQL 查询中的列或计算表达式分配别名。