4
我已經使用SQL數據庫工作了大約20年,似乎無法理解Knex映射查詢的方式。有人能幫我得到正確的代碼嗎?如何從Knex.js中的連接表中選擇特定列?
我有我想在我的應用程序的NodeJS使用此SQL查詢:
SELECT p.id, p.project_number, p.project_name, p.start_date, p.end_date,
o.name, o.email_addr,
c.company, c.email_addr AS company_email, c.first_name, c.last_name
FROM projects p
INNER JOIN owners o ON o.id = p.owner_id
INNER JOIN clients c ON c.id = p.client_id
KnexJS(0.7.5)文檔顯示的例子,看起來像這樣我的查詢:
knex.from('projects').innerJoin('owners', 'owners.id', 'projects.owner_id')
.innerJoin('clients', 'clients.id', 'projects.client_id');
在文檔中找不到幾件事:
1)如何選擇我想包含的列?項目,客戶和業主每個都有20到50列,我對他們都不感興趣。從主表中選擇列已清除(使用select()或column()),但如何從連接表中選擇列?
2)一些列具有相同的名稱。我如何避免名稱衝突(即向其他表的列添加一些前綴)?我看着Knex可以生成列別名(... AS)的方式,我不確定這是更復雜查詢的可行選項。 (即使是相對簡單的查詢,如上面的那個)