SELECT *和通过在Select语句中指定每一列/联合查询返回所有列之间的区别是什么?

天网

我具有以下表格结构(表格名称通知)

   _id | NotificationFor | DateToNotify | isExtraOrdinary |
   NotificationData | TypeNotification | FriendsName |
   RadioType | PrimaryId

我对称为NotificationsCron的表具有完全相同的架构,但是有时第二个表在Notifications表中具有完全相同的记录。我使用以下查询来获取记录:

SELECT *
FROM (SELECT *
      FROM Notifications
      WHERE TypeNotification <> 'Event' AND RadioType <> '3'
      UNION
      SELECT *
      FROM NotificationsCron
      WHERE TypeNotification <> 'Event' AND RadioType <> '3'
     ) T 
ORDER BY SUBSTR(DATE('NOW'), 0) > SUBSTR(DateToNotify, 0),
         SUBSTR(DateToNotify, 0);

但是,当我使用上面的方法时,我得到了重复项,我在互联网上经历了类似的问题,发现UNION ALL返回了重复项,而UNION没有。在我的情况下这不起作用,我遇到的第二个重点是指定每个列名而不是SELECT *我想知道这有什么区别-有兴趣了解它在基本级别上的作用吗?

这是NotificationsCron表的图像:

表格通知

这是通知表中的一张图片:

表格通知

Codenheim

我遇到的第二个重点是指定每个列名而不是SELECT *我想知道这有何不同

后来,有人在表中添加了一个字段。使用“ SELECT *”的任何查询都会突然获得一个新字段。有时这是正确的。有时这会产生意想不到的结果。在大多数情况下,始终显式命名列而不是使用通配符是一种更好的做法。

其次,如果您实际上并不需要所有列,则可以通过限制返回的列来提高性能。更进一步,在某些数据库中,INDEX可以满足查询而无需前往表,因此,如果使用列列表,则可以进行优化。使用SELECT *不能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询仅返回SELECT语句中第一列的值

来自分类Dev

for循环和select和select的区别是什么?

来自分类Dev

在TSQL SELECT语句中,“ As”和“ =”有什么区别?

来自分类Dev

select,epoll,kqueue和evport之间的根本区别是什么?

来自分类Dev

一次性为所有MySQL Select查询添加一列

来自分类Dev

如何在SQL select语句中基于另一列添加计算列

来自分类Dev

如何使用select语句中的一列值显示联接中的列?

来自分类Dev

在 select 语句中将两列相加成为一列

来自分类Dev

Codeigniter:查询返回select / like语句中表中的所有行

来自分类Dev

如果视图和存储过程都只包含1条select语句,那么SQL Server中的区别是什么

来自分类Dev

带联合的SQL select语句列顺序

来自分类Dev

select语句中的记录重复,但复杂联接中的一列除外

来自分类Dev

当特定列在SELECT语句中时,查询非常慢

来自分类Dev

如何设置列以在select语句中返回值

来自分类Dev

从select语句中的14个可能的列中返回日期

来自分类Dev

gocql SELECT *不返回所有列

来自分类Dev

Select语句中的子查询

来自分类Dev

带有保存状态的 IF 语句中的 SELECT 和 SELECT

来自分类Dev

Select语句返回每一行的所有ID值

来自分类Dev

在SELECT INTO语句中添加额外的列

来自分类Dev

SELECT语句中的参数化列

来自分类Dev

从SELECT语句中排除列

来自分类Dev

Linq 查询使用 select new 语句返回所有记录

来自分类Dev

SQL Select为表中的每一列返回2行

来自分类Dev

SQLite3(python)查询可在一个SELECT语句中搜索多个列

来自分类Dev

插入到将所有其他列设置为空的 select 语句中

来自分类Dev

dbms_out返回列1:PLS-00428:SELECT语句中应有INTO子句

来自分类Dev

在select语句中使用和不使用主键列的结果都不同。为什么?

来自分类Dev

在INSERT语句中执行SELECT语句的SQL是什么?

Related 相关文章

  1. 1

    SQL查询仅返回SELECT语句中第一列的值

  2. 2

    for循环和select和select的区别是什么?

  3. 3

    在TSQL SELECT语句中,“ As”和“ =”有什么区别?

  4. 4

    select,epoll,kqueue和evport之间的根本区别是什么?

  5. 5

    一次性为所有MySQL Select查询添加一列

  6. 6

    如何在SQL select语句中基于另一列添加计算列

  7. 7

    如何使用select语句中的一列值显示联接中的列?

  8. 8

    在 select 语句中将两列相加成为一列

  9. 9

    Codeigniter:查询返回select / like语句中表中的所有行

  10. 10

    如果视图和存储过程都只包含1条select语句,那么SQL Server中的区别是什么

  11. 11

    带联合的SQL select语句列顺序

  12. 12

    select语句中的记录重复,但复杂联接中的一列除外

  13. 13

    当特定列在SELECT语句中时,查询非常慢

  14. 14

    如何设置列以在select语句中返回值

  15. 15

    从select语句中的14个可能的列中返回日期

  16. 16

    gocql SELECT *不返回所有列

  17. 17

    Select语句中的子查询

  18. 18

    带有保存状态的 IF 语句中的 SELECT 和 SELECT

  19. 19

    Select语句返回每一行的所有ID值

  20. 20

    在SELECT INTO语句中添加额外的列

  21. 21

    SELECT语句中的参数化列

  22. 22

    从SELECT语句中排除列

  23. 23

    Linq 查询使用 select new 语句返回所有记录

  24. 24

    SQL Select为表中的每一列返回2行

  25. 25

    SQLite3(python)查询可在一个SELECT语句中搜索多个列

  26. 26

    插入到将所有其他列设置为空的 select 语句中

  27. 27

    dbms_out返回列1:PLS-00428:SELECT语句中应有INTO子句

  28. 28

    在select语句中使用和不使用主键列的结果都不同。为什么?

  29. 29

    在INSERT语句中执行SELECT语句的SQL是什么?

热门标签

归档