Toon posts:

[SQL] onmogelijke sql?

Pagina: 1
Acties:

Verwijderd

Topicstarter
In mijn db heb ik oa de volgende tabellen:

planning:
pla_id (id van de planning)
pla_crs_id (course die gepland is)


coursedates:
cdt_id (id van de coursedates)
cdt_pla_id (verwijzend na de planning)
cdt_date (de date waarop de course gegeven wordt)


uitleg:
Een course wordt gepland. Een course kan meerdere dagen duren. Deze dagen staan in de tabel coursedates. De tabellen hebben dus een 1opN relatie.


Soll situatie:
Nu wil ik het volgende:
een query waar ik uitkrijg:

pla_id, cdt_pla_id, pla_crs_id, cdt_id, cdt_pla_id, all_dates

Ik wil dus een query waarbij alle dates van een course bij elkaar worden gezet in een veld, en dat dat veld toegevoegd wordt bij de betreffende planning.


Is dit zoals ik denk niet haalbaar? Of is hier hier wel een oplossing voor?
(mocht eea niet duidelijk zijn, dan leg ik 't gaarne uitgebreid uit)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 19-05 21:24

NMe

Quia Ego Sic Dico.

Joins. :)

Op dat linkje zie je ook tutorials naar de datumfuncties die standaard in SQL zitten. Je kan iig wel gewoon met data rekenen, dus ook optellen geloof ik.

[ Voor 66% gewijzigd door NMe op 09-09-2004 15:39 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
stel dat de tabellen de volgende waarde hebben:

code:
1
2
3
4
5
6
7
8
9
10
planning:
pla_id     pla_crs_id
1            a
2            b

coursedates:
cdt_id     cdt_pla_id     cdt_date
x         1               1-1-2004
y         1               2-1-2004
z         1               3-1-2004


en stel dat ik de planning van id 1 op wil vragen, dan krijg ik toch 3 records terug:

1, a, x, 1, 1-1-2004
1, a, y, 1, 2-1-2004
1, a, z, 1, 3-1-2004


en ik wil 't juist zo terug krijgen:

1, a, 1, 1-1-2004 2-1-2004 3-1-2004

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Dat kan niet met SQL nee, dan zou het ding flexibel een aantal kolommen voor je moeten gaan bedenken. Dat kun je zelf ook wel bedenken dat het niet kan :)

Bedenk eens voor de lol hoe het er uit zo moeten zien als je "WHERE id IN (1,2,3)" meegeeft en bij die 3 ID's horen respectievelijk 4, 6 en 8 data?

Professionele website nodig?


  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 23:02

Reinier

\o/

Waarom wil je per se een variërend aantal kolommen in je result set? Dat is vreselijk onhandig en het hoort ook helemaal niet.
Drie records terugkrijgen is toch prima, daar kan je vervolgens met PHP of hoe je maar wilt allerlei leuke dingen mee doen. Desnoods maak je er in PHP weer een array van in de vorm van 1, a, 1, 1-1-2004 2-1-2004 3-1-2004 wat je noemde.

Waarom wil je je resultaat precies in die vorm?

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 22:46
Tuurlijk kan dat. :Y)
1:Je maakt met SQL commands een temptable op je server aan,
welke kolomlayout is afhankelijk van een Max(Count(etc..)) achtige query,
2: dan ga je de temptable vullen met data(nog een query),
3: dan lees je je temptabel uit, die data heeft de gewenste vorm
4: en dan drop je de tabel weer. |:(

Het schijnt overigens gebruikelijker te zijn om de layout/presentatie van je data na i.p.v. tijdens je datavergaring op te lossen. Als ik bovenstaand stukje U-bocht bekijk kan ik me zomaar voorstellen waarom. O-)

[disclaimer]
ik hoop dat hier niets hoeft te staan :X
[/disclaimer]
Pagina: 1