Creer des champs en fonction d'une autre table

Creer des champs en fonction d'une autre table - SQL/NoSQL - Programmation

Marsh Posté le 10-12-2009 à 18:11:31    

Bon a tous, je voudrais creer dans mon resultat des champs par rapport a une autre table

 

table dom
--------------------
id  |  key   | name
1   |   DF1 |  blabla
2   |   DF2 |  blabla

 

table ue
--------------------
id  |  key   | name   | dom_id | note | coef
1   |   UE1 |  blabla  |   1      |  20    | 1
2   |   UE2 |  blabla  |   1      |  20    | 2
3   |   UE3 |  blabla  |   2      |  1      | 1

 


table user
--------------------
id | login | pass

 


table user_ue_note
--------------------
id | user_id | ue_id  | note
1  |  1       |   1      |    15
1  |  1       |   2      |    12
1  |  1       |   3     |    0

  

je voudrais recuperé les données du style (les dom etant  0 ou 1  si on a la moyenne dans les ue)

 

user
----------------------------------
id | login | password | DF1 | DF2
1     test     test          0       1

 

donc question : est ce qu'on peu creer des champs par rapport a une autre table (dynamique bien sur)


Message édité par stealth35 le 10-12-2009 à 18:13:23
Reply

Marsh Posté le 10-12-2009 à 18:11:31   

Reply

Marsh Posté le 11-12-2009 à 14:23:46    

Salut,
 
Revois ta conception, c'est une très mauvaise idée que de repasser des lignes en colonnes en SQL.

Reply

Marsh Posté le 11-12-2009 à 14:46:14    

ouai c'est pas terrible,
faudrais avoir le resultat comme ca plutot

 

----------------------------------
id | login | password | domaine | valid
1     test     test          1       1
1     test     test          2       1
1     test     test          3       0
1     test     test          4       1

 


comme une jointure ducoup, t'en pense quoi ?

 


Message édité par stealth35 le 11-12-2009 à 14:46:31
Reply

Marsh Posté le 11-12-2009 à 15:11:29    

Bin ouais une jointure c'est mieux :D
 
Mais tu veux quoi exactement ? Une table ? Une vue ?

Reply

Marsh Posté le 11-12-2009 à 15:29:30    

je pense qu'une vue serai pas mal, j'avance sur ma requete je la posterai, pour avoir des avis

Reply

Marsh Posté le 11-12-2009 à 15:37:24    

Sinon une autre remarque : appeler "id" la clé primaire de chaque table, c'est pas génial pour s'y retrouver dans les requêtes.

Reply

Marsh Posté le 11-12-2009 à 15:47:58    

ouai, mais c'est pour l'exemple, en vrai c'est pas comme ca ;)

Reply

Marsh Posté le 11-12-2009 à 16:03:55    

je suis pas loin mais c'est pas encore ca

 
Code :
  1. SELECT u.login, d.name, IF(SUM((p.note / e.max) * e.coef) >= (SUM(e.coef) * .5), 1, 0) AS valid
  2. FROM user u, dom d, ue e, user_ue_note p
  3. WHERE u.id = 1 AND d.id = e.domaine_id AND p.user_id = u.id
  4. GROUP BY d.id
 

au final dans doctrine le top serai d'avoir une liste du genre

 
Code :
  1. [0] -> user -> login
  2.             -> dom    -> [df1] -> 1
  3.                     -> [df2] -> 1
  4.                     -> [df3] -> 0
  5.                     -> [df4] -> 1
  6. [1] -> user -> login
  7.             -> dom    -> [df1] -> 1
  8.                     -> [df2] -> 0
  9.                     -> [df3] -> 0
  10.                     -> [df4] -> 1
  11. [2] -> user -> login
  12.             -> dom    -> [df1] -> 1
  13.                     -> [df2] -> 1
  14.                     -> [df3] -> 1
  15.                     -> [df4] -> 1



Message édité par stealth35 le 11-12-2009 à 17:08:09
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed