[英]Can I have two foreign key from one table to an other, in order to get two columns field?
[英]Order By two columns but have one order
這個問題是特定於續集的,但我想如果我在 SQL 中找到一種方法,那么我可以在續集中找到一種方法
我需要通過user.fullname
重新訂購請求,該請求通過使用include
和mockUser.fullname
加入,這是一個 JSON 字段。
但是要記住的一件重要事情是,在存在mockUser
的情況下, user
可以為空。
這是我到目前為止所擁有的,它是通過mockUser.fullname
和user.fullname
排序的,但是,它是分開進行的,這意味着有兩個正確的訂單,但它們沒有被排序為一個訂單,這是所需的結果。
const options = {
where: args,
include: ['user'],
limit,
offset,
order: [['user', 'fullname', 'ASC'], ['mockUser.fullname', 'ASC']]
}
SQL 等效於上述續集表示,它被續集吐出,但我清理了它
注意:它將每個“user”.“column”變成“user.column”
SELECT * FROM "table"
LEFT OUTER JOIN "user" ON "table"."userId" = "user"."id"
WHERE "table"."columnId" = '9efcbd5a-4dc7-4102-ad59-b6f6cd9adaa4'
ORDER BY "user"."fullname" ASC, ("table"."mockUser"#>>'{fullname}') ASC
LIMIT 10
OFFSET 0;
我正在使用table
和column
來混淆真實姓名
示例 output:
Adam Smith -> user
Beatrice Westfield -> user
John Smith -> user
Andy Brook -> mockUser
Mario Jimenez -> mockUser
Nadia Martinez -> mockUser
所需的 Output:
Adam Smith -> user
Andy Brook -> mockUser
Beatrice Westfield -> user
John Smith -> user
Mario Jimenez -> mockUser
Nadia Martinez -> mockUser
如您所見,它首先對用戶進行排序,然后對 mockUser 進行排序,但是我如何將兩者結合起來呢?
我想你正在尋找
order by coalesce (user, mockUser)
在這種情況下,如果用戶是 null,它將由 mockuser 訂購。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.