簡體   English   中英

為html表中的每一行選擇用戶的最有效方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM