Hej! Du måste ha samma antal kolumner som hämtas från varje sats och datatyperna på kolumnerna måste vara samma också. Namnen behöver inte vara samma då det är den första SELECT satsens namn som används sen. Tack Thomas! Varsågod!Söka i flera databastabeller samtidigt, vb.net, access, sql, union
Från vb.net försöker jag göra enligt nedan.
Jag har en SQL-sats som söker i flera tabeller samtidigt i en ACCESS databas då jag inte vet i vilken tabell just det jag letar efter finns.
Tabellerna med Kolumner är:
AIRPORTS --- Icao, name, altitude, latitude, longitude, banor
NAVS --- Icao, name, latitude, longitude, type
INTERSECTIONS --- Icao, name, latitude, longitude
Allt fungerar bra om jag hämtar tillbaka samma kolumner (alltså kolumner med samma
namn) från de olika tabellerna.
Sql = "SELECT icao,name,latitude,longitude FROM airports WHERE icao ='" & söktext & "' UNION ALL SELECT icao,name,latitude,longitude FROM navs WHERE icao ='" & söktext & "' UNION ALL SELECT icao,name,latitude,longitude FROM intersections WHERE icao ='" & söktext & "'"
-------
Jag skulle dock vilja hämta ALL information från den tabell där mitt sökta mål finns
men det går inget bra.
Sql = "SELECT * FROM airports WHERE icao ='" & söktext & "' UNION ALL SELECT * FROM navs WHERE icao ='" & söktext & "' UNION ALL SELECT * FROM intersections WHERE icao ='" & söktext & "'"
--------
Måste alla tabeller innehålla "samma" kolumner alternativt att man bara hämtar de kolumner
som har samma namn? (Det är inte troligt att min sökta text finns i fler än En tabell.)
Kan man göra på annat sätt?
Hälsningar Pontus.Sv: Söka i flera databastabeller samtidigt, vb.net, access, sql, union
Du kan lägga till värden för de kolumner som inte finns i de andra tabellerna, som till exempel:
<code>
(SELECT Icao, name, altitude, latitude, longitude, banor, NULL AS type FROM airports)
UNION ALL
(SELECT Icao, name, NULL, latitude, longitude, NULL, type FROM navs)
UNION ALL
(SELECT Icao, name, NULL, latitude, longitude, NULL, NULL FROM intersections)
WHERE Icao = ?
</code>
Jag har inte testat ovanstående och kan inte garantera att det fungerar i Access, men principen borde framgå.Sv:Söka i flera databastabeller samtidigt, vb.net, access, sql, union
Det fungerar som du sa.
Kul att lära sig något nytt.
/PontusSv: Söka i flera databastabeller samtidigt, vb.net, access, sql, union
Det är kul att kunna lära ut något nytt =)