subquery (måske)
Jeg har nogle data til at stå i to tabeller. Dataen repræsentere nogle ting jeg har testet på, for at kunne skelne data, har jeg et serial nummer på tingene i dataserne.Nu vil jeg så gerne ha talt hvormange forskellige enheder der optræder i de to tabeller, og hvilken tabel de først optræser i.
Jeg kunne godt tænke mig hvis nedenstående virkede, men det gør det desværre ikke:
SELECT * FROM (
( SELECT `Time if test`, `EID`,`DUT SERIAL`, (1) FROM `test ok` )
UNION
( SELECT `Time if test`, `EID`,`DUT SERIAL`, (0) FROM `test fail` ) ) ORDER BY `Time if test` GROUP BY `DUT SERIAL`
I stedet for har jeg lavet dette script der gør det samme som jeg havde ønsket ovenstående havde gjort:
CREATE TEMPORARY TABLE `temp`
(
`Time of test` TIMESTAMP,
`EID` INT NOT NULL,
`DUT SERIAL` INT NOT NULL,
`pass` INT NOT NULL
);
INSERT INTO `temp` (`Time of test`, `EID`, `DUT SERIAL`, `pass`)
SELECT `Time of test`, `EID`,`DUT SERIAL`, (1) FROM `test ok` ;
INSERT INTO `temp` (`Time of test`, `EID`, `DUT SERIAL`, `pass`)
SELECT `Time of test`, `EID`,`DUT SERIAL`,(0) FROM `test fail` ;
CREATE TEMPORARY TABLE `temp2`
(
`Time of test` TIMESTAMP,
`EID` INT NOT NULL,
`DUT SERIAL` INT NOT NULL,
`pass` INT NOT NULL
);
INSERT INTO `temp2` (`Time of test`, `EID`, `DUT SERIAL`, `pass`)
SELECT `Time of test`, `EID`, `DUT SERIAL`,`pass` FROM `temp` ORDER BY `Time of test` ;
SELECT * FROM `temp2` GROUP BY `DUT SERIAL`
Efter min mening er det øverste exempel noget kun det smarste, bortset fra det ikke virker, og det gør det nederste. Jeg er også træt af at der skulle være nødvendig at lave to midlertidige tabeller for at få det til at virke.
Er der nogen der kan pynte lidt på det for mig ?
ps. Jeg bruger mysql ver 4.0.2
