Ik heb 4 tabellen in mijn db:

CREATE TABLE `acteurs` (
`pkActeurID` bigint(21) unsigned NOT NULL auto_increment,
`Naam` varchar(255) NOT NULL default 'NULL',
`Achternaam` varchar(255) NOT NULL default 'NULL',
`Voornaam` varchar(255) NOT NULL default 'NULL',
`Geboortenaam` varchar(255) NOT NULL default 'NULL',
`AKA` varchar(255) default NULL,
`Geslacht` enum('m','v','f','man','vrouw','male','female') default NULL,
`Geboortedatum` date default '0000-00-00',
`Geboorteplaats` varchar(255) default 'NULL',
`Overleden` date default '0000-00-00',
`Foto` longblob,
`IMDb_link` varchar(255) default 'NULL',
`gegevens_nodig` enum('yes','no','0','1') default 'no',
`opmerkingen` varchar(255) default NULL,
PRIMARY KEY (`pkActeurID`),
FULLTEXT KEY `acteur`(`Naam`)
) TYPE=MyISAM;

CREATE TABLE `muziek` (
`pkMuziekID` bigint(21) unsigned NOT NULL auto_increment,
`Naam` varchar(255) NOT NULL default 'NULL',
`Achternaam` varchar(255) NOT NULL default 'NULL',
`Voornaam` varchar(255) NOT NULL default 'NULL',
`Geboortenaam` varchar(255) NOT NULL default 'NULL',
`AKA` varchar(255) default NULL,
`Geslacht` enum('m','v','f','man','vrouw','male','female') default NULL,
`Geboortedatum` date default '0000-00-00',
`Geboorteplaats` varchar(255) default 'NULL',
`Overleden` date default '0000-00-00',
`Foto` longblob,
`IMDb_link` varchar(255) default 'NULL',
`gegevens_nodig` enum('yes','no','0','1') default 'no',
`opmerkingen` varchar(255) default NULL,
PRIMARY KEY (`pkMuziekID`),
FULLTEXT KEY `muzikant`(`Naam`)
) TYPE=MyISAM;

CREATE TABLE `regisseur` (
`pkRegisseurID` bigint(21) unsigned NOT NULL auto_increment,
`Naam` varchar(255) NOT NULL default 'NULL',
`Achternaam` varchar(255) NOT NULL default 'NULL',
`Voornaam` varchar(255) NOT NULL default 'NULL',
`Geboortenaam` varchar(255) NOT NULL default 'NULL',
`AKA` varchar(255) default NULL,
`Geslacht` enum('m','v','f','man','vrouw','male','female') default NULL,
`Geboortedatum` date default '0000-00-00',
`Geboorteplaats` varchar(255) default 'NULL',
`Overleden` date default '0000-00-00',
`Foto` longblob,
`IMDb_link` varchar(255) default 'NULL',
`gegevens_nodig` enum('yes','no','0','1') default 'no',
`opmerkingen` varchar(255) default NULL,
PRIMARY KEY (`pkRegisseurID`),
FULLTEXT KEY `regisseur`(`Naam`)
) TYPE=MyISAM;

CREATE TABLE `verhaal` (
`pkAuteurID` bigint(21) unsigned NOT NULL auto_increment,
`Naam` varchar(255) NOT NULL default 'NULL',
`Achternaam` varchar(255) NOT NULL default 'NULL',
`Voornaam` varchar(255) NOT NULL default 'NULL',
`Geboortenaam` varchar(255) NOT NULL default 'NULL',
`AKA` varchar(255) default NULL,
`Geslacht` enum('m','v','f','man','vrouw','male','female') default NULL,
`Geboortedatum` date default '0000-00-00',
`Geboorteplaats` varchar(255) default 'NULL',
`Overleden` date default '0000-00-00',
`Foto` longblob,
`IMDb_link` varchar(255) default 'NULL',
`gegevens_nodig` enum('yes','no','0','1') default 'no',
`opmerkingen` varchar(255) default NULL,
PRIMARY KEY (`pkAuteurID`),
FULLTEXT KEY `auteur`(`Naam`)
) TYPE=MyISAM;

nu is het de bedoeling dat ik de velden `Naam` en `Overleden` van deze 4 tabellen gebruik en een overzicht krijg van alle personen die overleden zijn, ongecaht acteur, muzikant, regisseur of auteur (verhaal). het liefst ook gesorteerd op overlijdensdatum, dus laatste bovenaan
(ORDER BY Overleden DESC)

Ik heb zelf al zitten worstelen met allerlei queries maar kom er niet uit.

Wie helpt mij uit de brand?
*bump*

wat wordt er eigenlijk met bumpen bedoeld?
bumpen is je topic weer in het lijstje links op deze site weer tevoorschijn toveren zodat je meer aandacht krijgt ;)

(ps. dit mag pas na 24 uur.. niet eerder..)

edit:
k heb overigens geen verstand van relaties in databases met mysql.. dus k kan je helaas niet verder helpen
Terence schreef op 28.08.2006 00:59
bumpen is je topic weer in het lijstje links op deze site weer tevoorschijn toveren zodat je meer aandacht krijgt ;)

(ps. dit mag pas na 24 uur.. niet eerder..)

edit:
k heb overigens geen verstand van relaties in databases met mysql.. dus k kan je helaas niet verder helpen



Als ik denk je te verstaan ...
dan kan je proberen ieder gegeven een id te geven ...

als een gegeven gevraagt is dat de rest met dezelfde id mee komt ...

Of bedoel je iets anders?


mgv,
Steven
Dit heeft nix met relaties te maken.

SELECT
a.naam, a.overleden,
b.naam, b.overleden,
FROM
acteurs AS a,
regisseur AS b
ORDER BY
a.overleden, b.overleden ASC

Volgens mij moet dat het al zijn anders snap ik je vraag niet.






ten 1, bedankt voor jullie reaktie / meedenken.

en het is de bedoeling dat ik uit die 4 tabellen
acteurs, regisseur, muziek, verhaal
de overleden personen in 1 tabel krijg.
dus de overleden acteurs, regisseurs etc.

@klaasjan
je query komt aardig overeen maar mist nog 2 tabellen.
Ik kom tot de volgende (access-)query:

SELECT a.Naam, a.Overleden, r.Naam, r.Overleden, m.Naam, m.Overleden, v.Naam, v.Overleden
FROM Acteurs AS a, Regisseur AS r, Muziek AS m, Verhaal AS v
WHERE (((a.Overleden) Is Not Null) AND ((r.Overleden) Is Not Null) AND ((m.Overleden) Is Not Null) AND ((v.Overleden) Is Not Null))
ORDER BY a.Overleden, r.Overleden, m.Overleden, v.Overleden;


maar die is het nog niet helemaal...
het duurt nogal voor hij de query heeft uitgevoert.
SELECT
a.Naam,
a.Overleden,
r.Naam,
r.Overleden,
m.Naam,
m.Overleden,
v.Naam,
v.Overleden
FROM
acteurs AS a
regissuers AS r
muziek AS m
verhaal AS v
WHERE
a.overleden<>""
AND
r.overleden <>""
AND
m.overleden<>""
AND
v.overleden<>""

Zoiets?
Ik mis trouwens de verbanden tusseen de gegevens, oftewel ik snap niet waarom je dit wilt.
Ik ben me wat aan het verdiepen in SQL en of mijn db ook genormaliseerd is. En ik denk ook dat ik mijn voordeel er mee kan doen bij het schrijven van php-scripts.

Ik had dit topic ook gepost bij phpfreakz.nl en die vertelden mij dat ik beter de 4 tabellen kon verwijderen en dan het volgende doen:

CREATE TABLE `personen` (
`pkPersoonID` bigint(21) unsigned NOT NULL auto_increment,
`Naam` varchar(255) NOT NULL default '',
`Achternaam` varchar(255) NOT NULL default '',
`Voornaam` varchar(255) NOT NULL default '',
`Geboortenaam` varchar(255) NOT NULL default '',
`AKA` varchar(255) NOT NULL default '',
`Geslacht` enum('man','vrouw') default NULL,
`Geboortedatum` date default NULL,
`Geboorteplaats` varchar(255) default NULL,
`Overleden` date default NULL,
`Foto` varchar(255) default NULL,
`IMDb_link` varchar(255) default NULL,
`gegevens_nodig` enum('0','1') default NULL,
`opmerkingen` varchar(255) default NULL,
`categorie` bigint(21) unsigned default NULL,
PRIMARY KEY (`pkPersoonID`)
) TYPE=MyISAM;

CREATE TABLE `rol` (
`pkRolID` tinyint(3) unsigned NOT NULL auto_increment,
`rol` varchar(255) NOT NULL default '',
PRIMARY KEY (`pkRolID`)
) TYPE=MyISAM;

INSERT INTO `rol` (`pkRolID`, `rol`) VALUES("1", "Acteur");
INSERT INTO `rol` (`pkRolID`, `rol`) VALUES("2", "Regisseur");
INSERT INTO `rol` (`pkRolID`, `rol`) VALUES("3", "Auteur");
INSERT INTO `rol` (`pkRolID`, `rol`) VALUES("4", "Muziek");

en

CREATE TABLE `persoon_rol_link` (
`pkRolLinkID` bigint(21) unsigned NOT NULL auto_increment,
PRIMARY KEY (`pkRolLinkID`)
) TYPE=MyISAM;

maar ik weet niet hoe ik tabellen link in (My)SQL.
Ja dit datamodel klopt van geen kanten. Je hebt allerlei velden dubbel in vier tabellen. Zoals het nu is, is je DB zeker niet genormaliseerd. Laat deze idiote query eens op je DB los? Misschien werkt hij wel

(SELECT Naam, Overleden
FROM acteurs)
UNION
(SELECT Naam, Overleden
FROM muziek)
UNION
(SELECT Naam, Overleden
FROM regisseur)
UNION
(SELECT Naam, Overleden
FROM verhaal)

[edit]
Mocht hij toevallig werken, dan raad ik je nog steeds een ander datamodel aan
[/edit]
Ik ga denk ik idd toch maar overstappen op een ander model, zoals ik hierboven al beschreef, met de 3 tabellen `personen`, `rol` en `persoon_rol_link`

ik zet dan alle acteurs, regisseurs, auteurs en muzikanten in de tabel `personen` en link dan in de tabel `persoon_rol_link` de personen of ze acteur, regisseur, auteur of muzikant zijn.

zal ik zelf nog ff moeten uitzoeken hoe ik de tabellen `personen` en `rol` link in de tabel `persoon_rol_link.`

Reageren