2012-08-02 82 views
0

我需要做一個思想像一個電子系統,這樣工作的人會選擇一個選舉,並選擇我的數據庫中的每個人,如果他投票或不,將它保存到另一個數據庫表,但如果我已經選擇了一個人在選舉中投票,它不應該再問我,但如果我選擇另一次選舉,它會再次提問。 即時通訊使用PHP和MySQL。投票系統在PHP和MySQL的狀態投票,像總統選舉

香港專業教育學院有一個像diferent查詢:

SELECT * 
FROM personas 
      LEFT OUTER JOIN votaciones 
       on personas.id = votaciones.id_persona 
WHERE personas.seccion = 6 AND 
     personas.mesa LIKE 'U' AND 
     votaciones.id_eleccion IS NULL 
LIMIT 5 

目前,我有3個表。 1與其中的人在一起,它有它的身份證,姓名,第二個名字,他去哪張桌子投票,然後是另一個表格,用於所有不同的選擇,如2000年的全國選舉,最後是人們的選票。

最後一個是來自人民的id_person作爲外鍵,來自選民的id_elecction以及是1還是0(是和否)的投票。

如果是1次選舉,那很容易,但很多人不知道,因爲未來可以增加更多的選舉。

非常感謝您向every1回答任何問題。

問題:我需要考慮一個查詢,它會給我一些還沒有投票參加特定選舉的人的姓名,就像所有沒有參加選舉1投票的人一樣。 如果一個人在選舉1投票,還沒有在選舉中投票2.當我要求選舉1時,那個人不會參加競選,但是當我要求參加選舉2時,他仍然投票,因爲他還沒有投票。

類似:

SELECT distinct id, nombre, apellido1, 
     apellido2, personas.seccion 
FROM personas 
     LEFT JOIN votaciones 
      on personas.id = votaciones.id_persona 
WHERE personas.seccion = 1 AND 
     mesa = 'A' AND 
     (id_eleccion IS NULL OR NOT EXISTS 
       (SELECT * 
        FROM votaciones 
        WHERE id_eleccion = 2) 
     ) 
+4

...和你的問題是什麼? – DaveHogan 2012-08-02 15:30:32

+0

您的數據庫模式聽起來很合理。我不明白你的問題是什麼。你能舉一個你想要做的事情的例子,你是如何嘗試做的,以及有什麼會給你帶來問題? – octern 2012-08-02 15:34:39

+0

我不能做一個查詢,如果他們投票或不選舉,我仍然沒有選擇所有人,例如: 我認爲約翰史密斯在選舉1中投票是肯定的。 但在選舉2他沒有投票,所以查詢不應該給我他姓名,如果我沒有參加選舉1的人,但應該這樣做,如果我要求沒有參加選舉2的人。 不知道如何解釋它更好:/ – vexen 2012-08-02 15:49:06

回答

0
SELECT distinct id,nombre, apellido1,apellido2, personas.seccion from personas 
     LEFT JOIN votaciones on personas.id = votaciones.id_persona 
     WHERE personas.seccion = 1 AND mesa = 'A' 
     AND (id_eleccion IS NULL OR id 
     NOT IN (SELECT id FROM personas JOIN votaciones ON personas.id = votaciones.id_persona WHERE id_eleccion =1)) 

這是我得出的結論。