mysql - sql查询的建议和优化

标签 mysql sql sql-server

我有三个具有不同数据和列的表:

 | id | type | src | shop | sex | brand | label | price | sizes |
 |  1 | hat  |image| zara | man | zara  | -25%  | 1000  | s,m,l |
 ................................................................
 ................................................................

这是第一张 table ,但还有两张 table ,只是元素类型不同,我的意思是:第一张 table 有配饰,第二张 table 有衣服,第三张 table 有鞋子...相同的列是:id、性别、商店等等

我需要从配件表中取出 8 件不同的元素,从衣服表中取出 2 件元素,从鞋子表中取出 1 件元素

这是查询:

  SELECT src,type FROM `accs_w` WHERE type IN( 'hat', 'scarf', 'earnings', 'necklace', 
 'ring', 'purse', 'gloves','belt') GROUP BY type 
  UNION 
  SELECT src,type FROM clothes_w WHERE type IN('shirt','pants') GROUP BY type 
  UNION 
  SELECT src,type FROM shoes_w WHERE type='boots' GROUP BY type

它返回给我这个:

  //pi3.lmcdn.ru/img172x248/M/O/MO002HWKU687_1.jpg
  necklace
  //pi3.lmcdn.ru/img172x248/F/R/FR008HWIG495_1.jpg
  ring
  //pi0.lmcdn.ru/img172x248/R/E/RE770DWKZ609_1.jpg
  gloves
  //pi4.lmcdn.ru/img172x248/I/C/IC415BWIK986_1.jpg
  purse
  //pi4.lmcdn.ru/img172x248/P/I/PI752DWJK584_1.jpg
  belt
  //pi3.lmcdn.ru/img172x248/F/R/FR008HWIG653_1.jpg
  earnings
  //pi2.lmcdn.ru/img172x248/M/A/MA002CWJW087_1.jpg
  hat
  //pi3.lmcdn.ru/img172x248/C/A/CA003GWKV794_1.jpg
  scarf
  //pi4.lmcdn.ru/img172x248/M/A/MA015EWKZ264_1.jpg
  bra
  //pi4.lmcdn.ru/img172x248/C/A/CA105EWLM131_1.jpg
  pants
 //pi3.lmcdn.ru/img172x248/C/L/CL009AWIX318_1.jpg
 shoes

问题:

这样查询可以吗?还有其他方法可以做得更好吗?

谢谢!

最佳答案

一个附加信息:请尝试将所有“UNION”替换为“UNION ALL”。据您所知,表之间的所有“类型”都是唯一的。但主要思想是将所有内容合并到一张表中。即使它包含数亿条记录,最好还是支持多个具有单一结构的表(例如,在添加一些新列等期间)。

关于mysql - sql查询的建议和优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20796981/

相关文章:

mysql - 将 MySQL 数据导入 Access 2010 时出现问题

sql - 使用 sysobjects 表中的表名创建 Sql Server View

sql-server - 当未指定时,SQL Server 如何确定转换的样式?

sql - 在 mssql 中评估 bool 返回值 - 可能吗?

c# - LINQ 为简单订单生成子查询

mysql - 更新 InnoDB 表中的 auto_increment 值

mysql - 如何使用mysql获取从开始日期到第n个月的当前记录

mysql - SQL 查询将记录分组在单独的字段下

mysql - 选择上一行数据作为当前行数据

java - 向 QueryDSL 查询添加选项语句