Forum » Server-Side scripting » query geeft geen resultaten door join.
devow.nl
Berichten: 1592
avatar
Online Stuur privebericht
Beste leden,

Ik ben heel druk bezig met een school opdracht. Maar kom er nu niet meer uit. We moeten een ziekmelding systeem schrijven, waarbij hoofd personeelszaken vervangers kunnen regelen.

Nu moet er een lijst komen die de beschikbare vervangers aangeeft. De eisen zijn:
- vervanger mag zelf natuurlijk niet ziek zijn
- vervanger mag niet al iemand anders vervangen.

De query die ik hiervoor dacht te gebruiken is:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
SELECT care_person.name_firstcare_person.name_middlecare_person.name_lastcare_personell.job_function_title
        FROM care_person
        JOIN care_personell ON
(care_personell.pid=care_person.pid)
        
LEFT JOIN ziekmeldingen AS person ON(person.pid=care_person.pid)
        
LEFT JOIN ziekmeldingen AS vervang ON(vervang.vid=care_person.pid)
        
WHERE person.beterdatum != '' AND vervang.vidDatum != '".$date."' GROUP BY care_person.pid


Maar deze geeft geen resultaten.

Uitleg namen: pid = personeels id
vid = vervangers id.

vidDatum = de datum waarop de vervanger was ingeroosterd en mag dus niet gelijk zijn aan de datum van vandaag ($date).

Hopelijk kan iemand hier mij mee helpen.
Laatst gewijzigd door Luc op 2012-01-21 16:33:18
21-01-2012 16:32
Dit topic is 95 keer bekeken door 22 verschillende leden
Reacties op: "query geeft geen resultaten door join."
1
world-of-maffia.nl
Berichten: 744
avatar
Offline Stuur privébericht
Je hebt 2 keer de optie: LEFT JOIN erin staan!! dit werkt natuurlijk niet
21-01-2012 16:39
Luc
devow.nl
Berichten: 1592
avatar
Online Stuur privébericht
Ik heb het al op verschillende manieren geprobeerd, het is gewoon dat hij zowel niet ziek mag zijn als vervanger mag zijn. Dus zodra één van de twee wel zo is, dan mag hij die persoon niet tonen.
21-01-2012 16:46
world-of-maffia.nl
Berichten: 744
avatar
Offline Stuur privébericht
Stuur het script eens?
21-01-2012 16:47
Luc
devow.nl
Berichten: 1592
avatar
Online Stuur privébericht
Op dit moment is de query het script, want het wordt in de query geplaatst waar het an moet voldoen en alles wat daaraan voldoet wordt vervolgens weergegeven.
21-01-2012 16:50
Informatica Student
Berichten: 1406
avatar
Online Stuur privébericht
Quote: zwpgangster

Je hebt 2 keer de optie: LEFT JOIN erin staan!! dit werkt natuurlijk niet


Dat kan prima?
21-01-2012 17:00
Luc
devow.nl
Berichten: 1592
avatar
Online Stuur privébericht
Zullen we het AUB ontopic houden? De query mag dus alleen personen weergeven die
niet ziek zijn en niet al iemand vervangen op de datum van vandaag.
21-01-2012 17:04
What else?
Berichten: 1180
avatar
Online Stuur privébericht
en komt er geen resultaat uit of krijg je een mysql_error, heb je het al geprobeerd om via phpmyadmin of een andere tool te proberen om het goed te krijgen?
21-01-2012 17:06
Luc
devow.nl
Berichten: 1592
avatar
Online Stuur privébericht
Geen error, zal hem nu eens in phpmyadmin laden, en hij geeft inderdaad geen resultaten..
21-01-2012 17:08
Berichten: 406
avatar
Offline Stuur privébericht
kan je ook de tabel geven
21-01-2012 17:09
Luc
devow.nl
Berichten: 1592
avatar
Online Stuur privébericht
care_users:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;


CREATE TABLE IF NOT EXISTS `care_person` (
  `
OLD_IDvarchar(60) DEFAULT NULL,
  `
pidint(11unsigned NOT NULL AUTO_INCREMENT,
  `
mdb_idvarchar(60) DEFAULT NULL,
  `
text_idvarchar(60) DEFAULT NULL,
  `
date_regdatetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `
name_firstvarchar(60NOT NULL,
  `
name_2varchar(60) DEFAULT NULL,
  `
name_3varchar(60) DEFAULT NULL,
  `
name_middlevarchar(60) DEFAULT NULL,
  `
name_lastvarchar(60NOT NULL,
  `
name_maidenvarchar(60) DEFAULT NULL,
  `
name_otherstext NOT NULL,
  `
date_birthdate NOT NULL DEFAULT '0000-00-00',
  `
blood_groupchar(2NOT NULL,
  `
addr_strvarchar(60NOT NULL,
  `
addr_str_nrvarchar(10NOT NULL,
  `
addr_zipvarchar(15NOT NULL,
  `
addr_citytown_nrmediumint(8unsigned NOT NULL DEFAULT '0',
  `
addr_is_validtinyint(1NOT NULL DEFAULT '0',
  `
citizenshipvarchar(35) DEFAULT NULL,
  `
phone_1_codevarchar(15) DEFAULT '0',
  `
phone_1_nrvarchar(35) DEFAULT NULL,
  `
phone_2_codevarchar(15) DEFAULT '0',
  `
phone_2_nrvarchar(35) DEFAULT NULL,
  `
cellphone_1_nrvarchar(35) DEFAULT NULL,
  `
cellphone_2_nrvarchar(35) DEFAULT NULL,
  `
faxvarchar(35) DEFAULT NULL,
  `
emailvarchar(60) DEFAULT NULL,
  `
civil_statusvarchar(35NOT NULL,
  `
sexchar(1NOT NULL,
  `
titlevarchar(25) DEFAULT NULL,
  `
photoblob,
  `
photo_filenamevarchar(60NOT NULL,
  `
ethnic_origmediumint(8unsigned DEFAULT NULL,
  `
org_idvarchar(60) DEFAULT NULL,
  `
sss_nrvarchar(60) DEFAULT NULL,
  `
nat_id_nrvarchar(60) DEFAULT NULL,
  `
religionvarchar(125) DEFAULT NULL,
  `
mother_pidint(11unsigned NOT NULL DEFAULT '0',
  `
father_pidint(11unsigned NOT NULL DEFAULT '0',
  `
contact_personvarchar(255) DEFAULT NULL,
  `
contact_pidint(11unsigned NOT NULL DEFAULT '0',
  `
contact_relationvarchar(25) DEFAULT '0',
  `
death_datedate NOT NULL DEFAULT '0000-00-00',
  `
death_encounter_nrint(10unsigned NOT NULL DEFAULT '0',
  `
death_causevarchar(255) DEFAULT NULL,
  `
death_cause_codevarchar(15) DEFAULT NULL,
  `
date_updatedatetime DEFAULT NULL,
  `
statusvarchar(20NOT NULL,
  `
historytext NOT NULL,
  `
modify_idvarchar(35NOT NULL,
  `
modify_timetimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `
create_idvarchar(35NOT NULL,
  `
create_timetimestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `
relative_name_firstvarchar(60) DEFAULT NULL,
  `
relative_name_lastvarchar(60) DEFAULT NULL,
  `
relative_phonevarchar(35) DEFAULT NULL,
  `
citytownvarchar(60) DEFAULT NULL,
  
PRIMARY KEY (`pid`),
  
KEY `name_last` (`name_last`),
  
KEY `name_first` (`name_first`),
  
KEY `date_reg` (`date_reg`),
  
KEY `date_birth` (`date_birth`)
ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2438 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


care_personell:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- 
Database: `onenat_care`
--

-- --------------------------------------------------------

--
-- 
Tabelstructuur voor tabel `care_personell`
--

CREATE TABLE IF NOT EXISTS `care_personell` (
  `
nrint(11NOT NULL AUTO_INCREMENT,
  `
short_idvarchar(10) DEFAULT NULL,
  `
pidint(11NOT NULL DEFAULT '0',
  `
job_type_nrint(11NOT NULL DEFAULT '0',
  `
job_function_titlevarchar(60) DEFAULT NULL,
  `
date_joindate DEFAULT NULL,
  `
date_exitdate DEFAULT NULL,
  `
contract_classvarchar(35NOT NULL DEFAULT '0',
  `
contract_startdate DEFAULT NULL,
  `
contract_enddate DEFAULT NULL,
  `
is_dischargedtinyint(1NOT NULL DEFAULT '0',
  `
pay_classvarchar(25NOT NULL,
  `
pay_class_subvarchar(25NOT NULL,
  `
local_premium_idvarchar(5NOT NULL,
  `
tax_account_nrvarchar(60NOT NULL,
  `
ir_codevarchar(25NOT NULL,
  `
nr_workdaytinyint(1NOT NULL DEFAULT '0',
  `
nr_weekhourfloat(10,2NOT NULL DEFAULT '0.00',
  `
nr_vacation_daytinyint(2NOT NULL DEFAULT '0',
  `
multiple_employertinyint(1NOT NULL DEFAULT '0',
  `
nr_dependenttinyint(2unsigned NOT NULL DEFAULT '0',
  `
statusvarchar(25NOT NULL,
  `
helpdeskint(12NOT NULL DEFAULT '1',
  `
emailvarchar(100NOT NULL,
  `
historytext NOT NULL,
  `
modify_idvarchar(35NOT NULL,
  `
modify_timetimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `
create_idvarchar(35NOT NULL,
  `
create_timetimestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  
PRIMARY KEY (`nr`,`pid`,`job_type_nr`),
  
KEY `pid` (`pid`)
ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=100002 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


ziekmeldingen:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;


CREATE TABLE IF NOT EXISTS `ziekmeldingen` (
  `
idint(128NOT NULL AUTO_INCREMENT,
  `
pidint(64NOT NULL,
  `
symptomentext NOT NULL,
  `
ziekmelddatumvarchar(10NOT NULL,
  `
verwachtebeterdatumvarchar(10NOT NULL,
  `
beterdatumvarchar(10NOT NULL,
  `
vidint(128NOT NULL DEFAULT '0',
  `
vidDatumvarchar(10NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
21-01-2012 17:15
Reageer op: "query geeft geen resultaten door join."
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden