2010-04-08 7 views
2

Je travaille sur une base de données se joindre et je veux faire ce qui suit:table1.columa SQL Select comme table1.columb

Select tabel_one.id, 
     tabel_one.title, 
     tabel_one.content, 
     table_two.value as table_two.key 
    from tabel_one 
    Join table_two ON table_two.id = table_one.id .... 

La partie importante est:

table_two.value as table_two.key 

est-il un moyen cela pourrait fonctionner?

+0

Oui, mais pas la façon dont vous l'avez écrit. Qu'est-ce que c'est censé faire? – MJB

+2

La publication de certaines données et la sortie attendue aideraient vraiment ... –

Répondre

3

Non, vous ne pouvez pas définir un alias référençant une table.

En général, vous devez simplement utiliser:

table_two.value as key 

Sinon, comme OMG Ponies suggested in another answer, vous pouvez envelopper l'alias dans les apostrophes inverses:

table_two.value as `table_two.key` 
+0

Eh bien, cela ne fonctionne pas. Pour préciser: J'ai une table avec des messages et une table avec des données pour ce poste. La table de données est celle qui est jointe. La structure de celui-ci est: 'id; post_id; type; value' mais le type pourrait être 'tags' ou 'author' que vous ne connaissez jamais. Donc je veux rejoindre 'post_data.value en tant que post_data.type'. post_data.type ne doit bien sûr pas être écrit, mais être 'tags' ou 'author'. Est-ce que je vous ai bien compris, que c'est impossible? –

+0

Non, je ne comprends toujours pas la question. – MJB

+0

@Lukas Les noms de colonnes sont corrigés pour toutes les lignes du jeu de résultats. Vous pouvez avoir un ensemble avec des étiquettes et un ensemble séparé avec l'auteur ou même un avec des étiquettes et un auteur (avec seulement un non-nul) en utilisant la logique appropriée. –

1

Ce:

Select tabel_one.id, 
     tabel_one.title, 
     tabel_one.content, 
     table_two.value as `table_two.key` 
    from tabel_one 
    Join table_two ON table_two.id = table_one.id 

.. .works pour moi sur MySQL 5.1.35. En raison de la période, vous devez joindre l'alias avec des accents graves

+0

+1 ... Bonne idée :) –

0

par votre comment on this answer en juger, j'attends ce que vous voulez vraiment est:

Select tabel_one.id, 
     tabel_one.title, 
     tabel_one.content, 
     table_two.value as tags, 
     table_three.value as author 
    from table_one 
    LEFT Join table_two ON table_two.id = table_one.id 
    AND table_two.key= 'tags' 
    LEFT Join table_three ON table_three.id = table_one.id 
    AND table_three.key= 'author' 
+0

Eh bien, pas tout à fait, parce que premièrement, l'auteur et les tags sont bot dans la même table et deuxièmement, vous ne savez jamais lequel est dans la table. Je vais utiliser une méthode différente cependant. Merci quand même. –

Questions connexes