mysql - 从三个不同的表中获取数据,但它是重复的记录

标签 mysql

我试图从两个不同的表中获取数据,但实际上涉及三个表。

tbl_prosubcategory         procategories             product
ID    Pkey                   ID  Pkey                ID  (P Key)
Cat_id Fkey from category    Categorytype            Cat_id (FKey)
subcatname                                           subcat_id(fkey from prosubcategory) 
                                                     productname
                                                     qty

我正在使用以下查询从产品表中选择产品 key 。我只访问了一条记录,但它返回了 5 条重复记录,因为子类别中有 5 条记录针对同一类别。

SELECT c.categoriestype AS categoryname, s.SubCatName AS subcategoryname, p.productname AS productname, p.productprice AS productprice, p.id AS proid, p.productimage AS productimage, p.productthumbnail AS productthumbnail
FROM tbl_ProCategories c, tbl_ProSubCategories s, tbl_products p
WHERE p.subcat_id = s.cat_id
AND p.cat_id = c.id
AND c.id = s.cat_id
LIMIT 0 , 30

最佳答案

一个产品属于 5 个子类别,并且您正在检索 subCateName(彼此不同),因此会发生 5 个结果,我认为从投影中删除 SubCatName 并使用 DISTINCT 可以帮助您。

SELECT DISTINCT
  c.categoriestype AS categoryname, 
  p.productname AS productname, p.productprice AS productprice,
  p.id AS proid, p.productimage AS productimage,
  p.productthumbnail AS productthumbnail
FROM tbl_ProCategories c, tbl_ProSubCategories s, tbl_products p
WHERE p.subcat_id = s.cat_id
AND p.cat_id = c.id
AND c.id = s.cat_id
LIMIT 0 , 30

关于mysql - 从三个不同的表中获取数据,但它是重复的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20206488/

相关文章:

Mysql数据库设计建议

MySQL - varchar 的多种情况

MySQL 查询被挂起,不得不终止进程

mysql - 智能数据库设置/布局

mysql - SQL 中的语法错误??在哪里?

MySQL 删除索引时出错(errno 150)

php - 我的 php 代码无法在主机中创建目录

mysql - SQL - 获取所有一对多关系的平均分数

mysql - 使用MySQL计算结果中所有经纬度距离

php - WHERE gid=$gid LIMIT 26 不起作用?