![](/img/trans.png)
[英]What is the most efficient way to bulk insert negative credit amounts into my transaction table for all users in my users table
[英]Most efficient way to select users for each row in an html table
我將嘗試以一種簡單的方式進行解釋:
-我有一個表格“ elections”,每個選舉都有一個id和其他一些字段(例如,數字投票,開始日期等)。
-我有一個表格“ candidates”,每個候選人都有一個“候選人候選人”字段,這是對選舉表的id字段的外部引用。 簡而言之:您可以編輯該字段來進行特定的選舉。
現在,我想制作一張表,每一行都有這樣的內容:
election id | election description | candidates (<select> <option> construct
每行都有一個<select> <option>
滾動菜單,它包含特定選舉的候選人。
現在,我的第一個想法是對每一行進行選擇查詢:
select id from candidates where election=row_id
但是對我來說效率似乎很低:我創建的每一行都必須進行查詢。
有沒有更好的辦法?
例:
選舉:
id|end date | role
2 | 01/01/2012 | major
3 | 01/02/2012 | secretary
用戶:
id| name |election
1 |donald | 2
2 |goofy | 2
3 |mickey | 3
現在是一個簡單的html行:
01/01/2012 | major | **select/option choice with goofy and donald**
01/02/2012 | secretary| **select/option choice with just mickey**
您大部分在那兒。 我唯一要做的就是在單個查詢中選擇所有內容,包括行標識符。
select id from candidates where election=row_id
將被替換為
select election, id from candidates where election in (row_id_1, row_id_2, etc);
現在您可以進一步這樣做:
SELECT election, array_agg(id) from candidates
where election in (row_id_1, row_id_2, etc)
ORDER BY election
GROUP BY election;
然后,對於每次選舉,您將獲得一系列候選人,例如: {1, 3, 55}
如果剝掉外面的括號,則可以使用csv解析例程來拉出數組的成員。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.