2009-03-12 20 views
1

j'ai 3 mysql 4.0 tables: tous ont des champs ID (int), Type (int) et un autre champ, valeur qui est soit varchar (255), tinyint ou int.Le moyen le plus rapide de joindre des données MySQL 4.0 à partir de plusieurs tables?

J'ai besoin de les écrire tout et je finis par obtenir trois DataTables, en boucle sur eux, et en créant des lignes dans une table temporaire (.NET 1.1).

Voyez-vous une façon plus rapide/plus propre que cela pour se joindre ou tout simplement écrire ces données?

Répondre

1

Je ne sais pas si vous êtes désireux de rejoindre réellement ou afficher les résultats de trois tables dans une requête.

Si vous êtes désireux résultats à plat, votre meilleur mieux serait de faire une union telle que:

SELECT 
    ID, 
    Type, 
    Convert(varchar(255), Value) as Value 
FROM 
    table1 
UNION 
SELECT 
    ID, 
    Type, 
    Convert(varchar(255), Value) as Value 
FROM 
    table2 
UNION 
SELECT 
    ID, 
    Type, 
    Convert(varchar(255), Value) as Value 
FROM 
    table3 

Note: Je suis en train de faire la conversion de sorte que vous pouvez obtenir la forme la plus stable (la version varchar) des trois champs.

+0

Merci, en fait cela a fonctionné, même sans conversion, mais je suis inquiet, car au lieu de 420 résultats, je suis seulement obtenir 410 cette façon - peut-être certains sont doubles et sont confondus? – Spikolynn

+0

@Spikolynn: il est possible que la conversion implicite est une INTERVENUES dans vos ints et minuscules ints (ou vos varchars tentent de convertir en ints) et quand il échoue conversion, il obtient chuté du jeu de résultats. – TheTXI

+0

TheTXI: J'ai essayé avec Convert (Value, char) au lieu de Value tous les trois fois, mais il montre toujours pas assez de résultats. Cela ne me dérange pas beaucoup, parce que l'application devrait fonctionner de la même manière si elles ne sont que des doublons, comme je le suppose. – Spikolynn

Questions connexes