[Edit: even een img van gemaakt]
Beste PHPhulp,

ik heb nu een datamodel()

Dit is de tabel waar het om gaat:
<?php
echo '<pre>
|avondid | medid | week | jaar |
1 1 3 2007
1 2 3 2007
1 3 3 2007
2 1 3 2007
2 2 3 2007
2 3 3 2007
3 1 3 2007
3 2 3 2007
3 3 3 2007
3 4 3 2007
3 5 3 2007
4 2 3 2007
5 1 3 2007
5 4 3 2007
6 1 3 2007
6 2 3 2007
6 3 3 2007
6 4 3 2007
6 5 3 2007
</pre>';
?>

De avondid en de medid wil ik aanelkaar koppelen, ik wil dus een SELECT die elke avondid uniek pakt

1
2
3
4
5
6

En koppelt aan een medid, maar iedere medid moet er minstens 1 keer in voorkomen.

Wie kan me enigzins op weg helpen.
Oeps...verkeerde forum..excuses: Kan deze verplaatst worden naar Databases & SQL ? :)
wat nou verkeerde forum, mogen we dan helemaal geen antwoord meer geven?

we weten het namelijk wel!! ;-)
bart van der veen schreef op 17.01.2007 09:40
wat nou verkeerde forum, mogen we dan helemaal geen antwoord meer geven?

we weten het namelijk wel!! ;-)


Ik bedoelde meer zoiets als: Koffiehoek ipv Database/SQL
oh in dat geval:

<?
SELECT
[ALL | DISTINCT | DISTINCTROW ] // distinct of distinctrow moet je ff proberenen
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr, ...
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name'
| INTO @var_name [, @var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]
?>
Bedankt, maar hier kan ik niet echt goed mee overweg, er staan dingen in die ik niet nodig heb.

Is er een beperkter oplossing mogelijk? :)
SELECT
DISCTINT(avondid)
FROM
tabel
Uitgaande van het resultaat van tabel uit eerste reactie

Alle dagen moeten uniek gepakt worden dus:

1
2
3
4
5
6

én iedere medewerker moet minstens aan één van deze unieke dagen zijn gekoppeld, bijv:

[html]
[pre]
dagid medid
1 3
2 2
3 5
4 1
5 4
6 4
[/pre]
[/html]


Met distinct kan ik nu enkel de dagen uniek pakken, maar hoe deze weer te combineren met de medewerkers die minstens 1 keer moeten voorkomen.
Ik zou zo geen juist SQL statement kunnen bedenken voor wat jij wil.

Ik snap btw ook niet waarom je dagid uniek wil. Er zijn namelijk meerdere
medids per dagid.

als je van het uniek afstapt zal het iets worden als:

<?php
$sql="
SELECT 
    a.dagid,
    b.dagnaam,
    b.dagtijdstip,
    c.medid,
    c.mednaam
FROM
    koppeltabel a
    dagen b,
    medewerker c
WHERE
     a.dagid=b.dagid    
AND
     a.medid=c.medid
";
?>


Klaasjan

1 medewerker kan maar op 1 dag werken, maar meerdere mensen geven zich voor deze zelfde dag op. Ik moet dus een eerlijk systeem maken dat van alle opgegeven mensen er minsten 1 word geselecteerd voor 1 dag.

Reageren