Hej! På beskrivningen låter det som att du vill ha en intersect, inte en union? Vad jag kan se så har MySQL inte stöd för intersect, men du borde kunna få samma resultat med en inner join. Tack för det snabba svaret. Skulle kanske kunna fungera såhär:Ta unionen mellan Select-satser
Jag använder MySql och vill kunna ta unionen mellan två eller flera Select-satser.
T.ex har jag.
SELECT id FROM table1 WHERE name = "test" som returnerar id 1 & 2
och
SELECT id FROM table1 WHERE size = "1" som returnerar bara id 1
Det jag vill är att få ut ett resultatset med endast id 1.
Går detta?Sv: Ta unionen mellan Select-satser
Om det är olika tabeller:
SELECT tabell1.id FROM tabell1 INNER JOIN tabell2 ON tabell1.id = tabell2.id WHERE tabell1.name = "test" AND tabell2.size = "1"
Men eftersom du verkar ha sökningarna i samma tabell är det bara att lägga till en AND i villkoret.
SELECT id FROM tabell1 WHERE name = "test" AND size = "1"
/JohanSv:Ta unionen mellan Select-satser
Du har rätt att AND borde fungera, det jag glömde nämna i mitt lilla mystiska exempel är att det är samma kolumn som jag söker i båda gånger. Min tabell ser ut som följer
pkID | ID | Value
--------------------
1 | 1 | 1
2 | 2 | 1
3 | 1 | 7
Min selectsats som då inte fungerar blir då.
SELECT ID FROM table1 WHERE Value = 1 AND Value = 7;
Detta vill jag då ska returnera bara ID = 1.Sv: Ta unionen mellan Select-satser
SELECT A.ID FROM tabell1 A INNER JOIN tabell1 B ON A.ID = B.ID WHERE A.Value = 1 AND B.Value = 7
/Johan