mysql - 建议的 SQL 格式

标签 mysql sql

<分区>

我正在处理我的 SQL,并且我有以下语句:

1    SELECT c.credit_display, t.title, t.provider
2       FROM credits c
3           INNER JOIN title t 
4           ON c.vendor_id = t.vendor_id
5       WHERE c.position = 'Director' and t.provider = 'Premiere'
6           INTO OUTFILE '/var/tmp/file.csv'
7           FIELDS TERMINATED BY ','

我想知道关于标签的正确格式是什么。关于何时缩进的建议做法是什么(例如,第三行应该是两个制表符还是三个制表符?)。

最佳答案

这都是非常主观的

由于 INTO OUTFILEFIELDS 选项属于整个 SELECT 语句,我可能不会将它们缩进到 下方WHERE 子句,而是在最左边的位置(无缩进)

由于您有多个 WHERE 条件,您可以在一个新行上缩进每个条件。我会将相同的方法应用于 SELECT 列和 FROM 表。 JOIN 中的 ON 子句在它适用的JOINed 表下方缩进。

SELECT
   /* each column on its own line */
   /* unless it is only 1 column */
   c.credit_display, 
   t.title, 
   t.provider
FROM
   credits c
   INNER JOIN title t 
      /* ON clause indented beneath the join */
      ON c.vendor_id = t.vendor_id
WHERE 
   /* each condition on its own line */
   c.position = 'Director'
   AND t.provider = 'Premiere'
/* This apply to the entire statement so I would not indent them
INTO OUTFILE '/var/tmp/file.csv'
  /* You might indent this and other LINES TERMINATED BY options 
     beneath the OUTFILE line */
  FIELDS TERMINATED BY ','

缩进是一个非常主观的问题,最好的办法是与您的团队就你们如何缩进代码达成一致。

关于mysql - 建议的 SQL 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10047532/

相关文章:

mysql - 对多列进行分组时如何选择最大值或最后一条记录?

mysql - 表内的内连接

java - 将行添加到具有唯一列 : Get existing ID values plus newly-created ones 的表

MYSQL数据导入更改时间

php - Laravel 使用 insert() 和 convert() 绑定(bind)参数

java - jOOQ:如何在选择查询中调用Sql用户定义的函数

sql - 仅当先前查询没有结果时才执行查询

sql - 嵌套的Select语句-使用两个字符串值之间的字符串获取数据集

mysql - 选择至少与列表中所有项目匹配的记录

php - 具有正则表达式字符类的 CDbCriteria 参数