私はそれについて何も見つかりませんでした。ここで mysql:結合のすべてのフィールドの名前を変更します。
は私のクエリです:SELECT p.*, pa.*, a.*
FROM produit p
LEFT OUTER JOIN produit_attribut pa
ON p.id=pa.id_produit
LEFT OUTER JOIN attribut a
ON a.id=pa.id_attribut
ORDER BY p.id,a.id;
しかし、問題は、それは、何かを私はテーブルのすべてのフィールドの名前を変更する方法があるかどうかを知りたいのですが、列
with the same name:
+----+------------+-----+------------+-------------+------+-----+----+----+
| id | titre | desc| id_produit | id_attribut | id | desc| val| abb|
+----+------------+-----+------------+-------------+------+-----+----+----+
| 1 | Anchois | Sauc| 1 | 1 | 1 | Nomb| 2 | Nb |
| 2 | Fromage | Sauc| 2 | 1 | 1 | Nomb| 2 | Nb |
| 3 | Mozzarella | Sauc| 3 | 1 | 1 | Nomb| 2 | Nb |
| 4 | Jambon | Sauc| 4 | 1 | 1 | Nomb| 2 | Nb |
| 5 | Roquefort | Sauc| 5 | 1 | 1 | Nomb| 2 | Nb |
| 6 | Royale | Sauc| 6 | 1 | 1 | Nomb| 2 | Nb |
を返すということです(私は次のSQLは動作しません知っている):
SELECT p.* as p*, pa.* as pa*, a.* as att*
FROM produit p
LEFT OUTER JOIN produit_attribut pa
ON p.id=pa.id_produit
LEFT OUTER JOIN attribut a
ON a.id=pa.id_attribut
ORDER BY p.id,a.id;
しかし、私はそうすることができることを知っているメーリングのような:
SELECT
p.id AS p_id,
p.titre AS p_titre,
p.description AS p_description,
p.prix AS p_prix,
p.text_detail AS p_text_detail,
p.img_petite AS p_img_petite,
p.img_grande AS p_img_grande,
pa.id_produit AS pa_id_produit,
pa.id_attribut AS pa_id_attribut,
a.id AS a_id,
a.description AS a_description,
a.valeur AS a_valeur,
a.abbreviation AS a_abbreviation
FROM produit p
LEFT OUTER JOIN produit_attribut pa
ON p.id=pa.id_produit
LEFT OUTER JOIN attribut a
ON a.id=pa.id_attribut
ORDER BY p_id,a_id;
私はこれを避けたいと思います。
私はPHPでこのリクエストを使用し、一般的なCRUDコンポーネント(およびネストしたテーブル)に関するものであるため、リクエストを一般的にしたいと思います。
方法はありますか?
いいえ - ありません - エイリアスが列ごとに行われます – ManseUK
これを行う方法はないと思います。いずれにせよ、 '*'を使用するのではなく、選択しているカラムを明示することが最善です。なぜなら、大きなバイナリカラムが後で追加されるときにカラムの順序を決定することができ、問題を防ぐからです。 –
カラムを変更するあなたのスキーマの名前! :p –