2012-07-09 2 views
0

Mon Google-Fu est faible sur celui-ci, alors peut-être que vous pouvez tous aider.Fournir à MySQL une liste de lignes à lier manuellement avec une liste à gauche?

Si vous voulez sélectionner plusieurs colonnes, vous pouvez faire ...

SELECT 'something' as userName, 'fooBar' as typicalSaying

Et vous obtiendrez:

+----------------+-----------------+ 
| userName | typicalSaying | 
+----------------+-----------------+ 
| something | fooBar  | 
+----------------+-----------------+ 

Cependant, comment dois-je faire ci-dessus avec des lignes ?

EG:

SELECT someLine, effy.text from table 
LEFT JOIN (SELECT 'a' as text UNION 'b' UNION 'c') as effy 

EDIT: Pour obtenir un résultat comme ..

+----------------+--------------+ 
| someLine | effy.text | 
+----------------+--------------+ 
| entryA  | a   | 
| entryA  | b   | 
| entryA  | c   | 
+----------------+--------------+ 
+0

ce que vous entendez par « Cependant , comment puis-je faire ce qui précède avec des lignes? – jcho360

+0

Merci pour la confusion, Jcho360. J'ai édité ma question pour montrer le résultat que je cherche. – SoreThumb

Répondre

1

Vous étiez presque là:

SELECT someLine, effy.text 
FROM table 
LEFT JOIN (
    SELECT 'a' as text 
    UNION ALL 
    SELECT 'b' 
    UNION ALL 
    SELECT 'c' 
) as effy 
+0

C'est vraiment boiteux qu'il n'y a aucun moyen de le faire sans les instructions UNION. Soupir. : | Merci! – SoreThumb

+0

Eh bien, dans MSSQL, vous pourriez utiliser 'VALUES(),(), ...', similaire à MySQL 'INSERT VALUES(),(), ..'. Mais dans MSSQL vous ne pouvez que "INSERT .. UNION ... UNION" :) Voir http://blog.sqlauthority.com/2007/06/08/sql-server-insert-multiple-records-using-one-insert -statement-use-of-union-all/(basé sur un googling rapide) – biziclop

Questions connexes