UNION
Jeg har følgende to tabeller:CREATE TABLE IF NOT EXISTS `tblspejl` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`vareid` int(11) NOT NULL DEFAULT '0',
`position` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=2 ;
CREATE TABLE IF NOT EXISTS `tblartikler` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`position` int(11) NOT NULL DEFAULT '0',
`dato` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`ean` varchar(20) COLLATE utf8_danish_ci DEFAULT NULL,
`navn` text COLLATE utf8_danish_ci NOT NULL,
`type` text COLLATE utf8_danish_ci NOT NULL,
`salgspris` float(11,2) NOT NULL DEFAULT '0.00',
`listepris` float(11,2) DEFAULT '0.00',
`kostpris` float(11,2) DEFAULT NULL,
`varetekst` text COLLATE utf8_danish_ci NOT NULL,
`visibility` int(11) NOT NULL DEFAULT '0',
`totalvaegt` int(11) DEFAULT NULL,
`lastevne` int(11) DEFAULT NULL,
`laengde` int(11) DEFAULT NULL,
`hoejde` int(11) DEFAULT NULL,
`bredde` int(11) DEFAULT NULL,
`frontpage` int(11) NOT NULL DEFAULT '0',
`vaegt` int(11) NOT NULL DEFAULT '0',
`producentid` int(11) DEFAULT NULL,
`leverandoerid` int(11) DEFAULT NULL,
`lokationid` int(11) DEFAULT NULL,
`lagerfoeres` tinyint(1) NOT NULL DEFAULT '1',
`kommission` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `position` (`position`),
KEY `visibility` (`visibility`),
KEY `salgspris` (`salgspris`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci AUTO_INCREMENT=2054 ;
Jeg vil gerne lave et udtræk fra tblartikler hvor artiklerne ligger i en bestemt varegruppe(position). Men den skal lige tjekke også om der i udtrækket skal medtages spejlprodukter fra en anden varegruppe. Derfor tabellen tblspejl.
Jeg har forsøgt med en UNION, men jeg laver det åbenbart ikke rigtigt. Der kommer ingen fejl, den finder blot ikke noget spejlprodukt.
Kan nogen gennemskue det?
SELECT
ta.id,
ta.varetekst,
ta.type,
ta.navn,
ta.salgspris,
ta.listepris,
ta.visibility,
ta.totalvaegt,
ta.lastevne,
ta.bredde,
ta.laengde,
ta.hoejde,
ta.frontpage,
ta.vaegt,
ta.lagerfoeres,
ta.producentid,
tst.antal as beholdning
FROM
tblartikler ta
LEFT JOIN
tblstock as tst ON
tst.ean = ta.ean
WHERE
(ta.position = '$_GET[relation]'
AND ta.visibility)
UNION
SELECT
ta_s.id,
ta_s.varetekst,
ta_s.type,
ta_s.navn,
ta_s.salgspris,
ta_s.listepris,
ta_s.visibility,
ta_s.totalvaegt,
ta_s.lastevne,
ta_s.bredde,
ta_s.laengde,
ta_s.hoejde,
ta_s.frontpage,
ta_s.vaegt,
ta_s.lagerfoeres,
ta_s.producentid,
tst_s.antal as beholdning
FROM
tblartikler as ta_s
LEFT JOIN
tblstock as tst_s ON
tst_s.ean = ta_s.ean
JOIN
tblspejl as ts ON
ts.vareid = ta_s.id
AND ts.position = ta_s.position
WHERE
(ta_s.position = '$_GET[niveau1]'
AND ta_s.visibility)