2010-12-06 2 views
1

J'essaie d'apprendre à propos de l'alias en SQL pour mon cours mais je ne comprends pas entièrement la commande. Dans le cadre du travail que je dois faire:aide avec alias sql

  1. Comprendre SQL requêtes complexes (a) Sélectionner toutes les colonnes/champs de pistes master et ingénieur du son joignant les deux basés sur les ingénieurs du son ID et en utilisant un alias pour chaque table.

j'ai ici:

SELECT * 
FROM SOUNDENGINEER AS s 
INNER JOIN MASTERTRACK AS m ON m.EDITED_BY,s.SOUND_ENG_ID; 

mais maintenant je suis coincé s'il vous plaît aider

Répondre

1
SELECT * FROM SOUNDENGINEER s INNER JOIN MASTERTRACK m ON m.EDITED_BY = s.SOUND_ENG_ID; 

cela semble fonctionner

+0

C'est la même chose. Le mot-clé 'AS' est facultatif et les deux versions devraient fonctionner, à moins que vous n'utilisiez une base de données étrange qui préfère ne pas utiliser' AS'. Je ne connais pas de telle base de données cependant. o_O – mingos

+0

Je crois qu'il est oracle chaque fois que je l'ai utilisé AS j'ai eu une erreur semble fonctionner maintenant. merci pour votre aide, cela m'a mis sur la bonne voie – learner123

5

Il est correct, mais sur l'article devrait être comme ceci sur m.EDITED_BY = s.SOUND_ENG_ID;

SELECT * FROM SOUNDENGINEER AS s 
INNER JOIN MASTERTRACK AS m ON m.EDITED_BY = s.SOUND_ENG_ID; 
+0

quand je entrée ce que je reçois cette erreur: SQL> SELECT * FROM s AS ingénieur du son INNER JOIN MasterTrack AS m m.EDITED_BY = s.SOUND_ENG_ID; SELECT * FROM SOUNDENGINEER AS s * ERREUR à la ligne 1: ORA-00933: La commande SQL n'est pas terminée correctement – learner123

+0

Avez-vous ajouté le signe * à la fin de votre requête? Msgstr "SELECT * FROM SOUNDENGINEER AS IN INNER JOIN MASTERTRACK COMME ON m.EDITED_BY = s.SOUND_ENG_ID; SELECT * FROM SOUNDENGINEER AS s" est assez légitime, donc supprimez la dernière * de votre requête si c'est le cas. –

+0

il n'y avait pas d'étoile au thats fin juste pour montrer l'erreur – learner123

2
SELECT * FROM SOUNDENGINEER AS s INNER JOIN MASTERTRACK AS m ON m.EDITED_BY = s.SOUND_ENG_ID; 
+0

SELECT * DE SOUNDENGINEER INNER JOIN MASTERTRACK SUR MASTERTRACK.EDITED_BY = SOUNDENGINEER.SOUND_ENG_ID; – learner123

+0

CE wroks mais je dois utiliser alias les autres façons de me donner une commande non terminée erreur. – learner123

1

presque droite. Essayez:

SELECT * 
FROM SOUNDENGINEER AS s 
INNER JOIN MASTERTRACK AS m ON m.EDITED_BY = s.SOUND_ENG_ID; 

Votre utilisation de la virgule pourrait suggérer que vous essayiez la syntaxe équi-jointure autre, qui serait:

SELECT * 
FROM SOUNDENGINEER AS s, MASTERTRACK AS m 
WHERE m.EDITED_BY = s.SOUND_ENG_ID; 

Je préfère l'ancien bien, comme vous déclarez explicitement que vous joignez les tables avec une instruction INNER JOIN.

+0

i obtenir la même erreur: SQL> SELECT * DE S ingénieur du son INNER JOIN MasterTrack AS m m.EDITED_BY = s.SOUND_ENG_ID; FROM SOUNDENGINEER AS s * ERREUR à la ligne 2: ORA-00933: La commande SQL n'est pas terminée correctement – learner123