Mysql sql查询的建议和优化

Mysql sql查询的建议和优化,mysql,sql,sql-server,Mysql,Sql,Sql Server,我有三个具有不同数据和列的表: | id | type | src | shop | sex | brand | label | price | sizes | | 1 | hat |image| zara | man | zara | -25% | 1000 | s,m,l | ................................................................ ...................................

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

 | id | type | src | shop | sex | brand | label | price | sizes |
 |  1 | hat  |image| zara | man | zara  | -25%  | 1000  | s,m,l |
 ................................................................
 ................................................................
这是第一张桌子,但也有两张桌子,它们只是在物品的类型上有所不同,我的意思是:在第一张桌子上有配件,在第二张桌子上有衣服,在第三张桌子上有鞋子……相等的列是: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
问题:

这样提问可以吗?有没有其他更好的方法


谢谢大家!

一个附加信息:请尝试将所有“联合”替换为“联合所有”。据您所知,表之间的所有“类型”都是唯一的。但是主要的想法是把所有的东西都放在一张桌子上。即使它将包含数亿条记录,但最好支持多个具有单一结构的表(例如,在添加一些新列等过程中)。

此模式违反了规则。为什么不将您的表合并为一个表,并用一列标识产品类型?@eggyal我知道方形将更容易,但该表将由11k行组成,可以吗?这不是很慢吗?@Costarasco:11k记录对于一个正确索引的表来说根本不算什么。即使您有数亿条记录,在这些记录中划分表可能是明智的,您也应该使用MySQL的本机,而不是自己尝试破解它。