mysql:重命名连接的所有字段

标签 mysql sql

我没有找到任何相关信息。

这是我的查询:

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 组件(和嵌套表)的。

有办法吗?

最佳答案

不,没有办法做到这一点。但是,您应该尽量避免使用 * 来选择列,因此通过这种重构,您可以摆脱 * 并且可以为您需要的所有列添加别名加他们两个。一石二鸟! ;)

关于mysql:重命名连接的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124181/

相关文章:

sql - ClickHouse:0 是 Null?

android - 如何从 Flutter App 连接 Ms SQL?

sql - 摆脱 SQL Server 执行计划中的 Table Spool

php - 在 PHP 中显示 SQL 表并比较值

Mysql InnoDB 行锁定读取

php mysql : creating image gallery

mysql - 数据库设计 : need composite key + foreign key Part 2

java - Hibernate 一对一关系表中的键问题

php - MySQL 选择“与”或

sql - 按列排序表,但如果为0,则忽略-SQLite