Éviter “#1060 - Dupliquer le nom de la colonne” Erreur, mais encore à l'aide de SELECT *

J'ai 2 tables, les annonceurs et les campagnes. Les deux ont plus de champs je garde de liste et les deux ont une clé primaire "id". Je voudrais créer une vue, sans avoir à saisir tous les champs manuellement à l'aide des * à la place. Je reçois le "double colonne" erreur. Est-il possible de le faire via * à tous ou est ma seule option pour entrer tous les noms de colonne et la définition des alias pour les Id?

  CREATE VIEW VIEW_CAMPAIGNS AS 

  SELECT *, 
      advertisers.id as adv_id,
      campaigns.id as camp_id

  FROM  campaigns, advertisers
  WHERE advertisers.id = advertiser_id

Renvoie toujours #1060 - Double nom de colonne 'id'

Ne pas utiliser SELECT *
Êtes-vous en train de dire qu'il ne peut être fait avec SELECT * ?
Oui, en disant *, tu veux dire toutes les colonnes des deux tables, le fait que vous êtes aussi l'ajout de 2 colonnes plus explicitement et en leur donnant un nouvel alias ne change pas le fait que vous avez déjà sélectionné toutes les colonnes des deux tables.
Merci. Il n'existe aucun moyen pour exclure une colonne à partir de * ?
Oui. Mais je me suis aussi dit de ne pas utiliser * période. La meilleure pratique est de toujours de nom (et de l'identifier), toutes les colonnes.

OriginalL'auteur Rid Iculous | 2014-02-18