【问题标题】:simple mysql query with join [closed]带有连接的简单mysql查询[关闭]
【发布时间】:2014-01-04 01:04:10
【问题描述】:

我正在尝试使用 2 个表、类别和产品构建查询:

类别

catid
parentid
categoryname
description

catid   parentid categoryname
=============================
39      0       MyCatName1
=============================
43      39      MyCatName2
=============================
40      0       MyCatName3
=============================
41      0       MyCatName4
=============================
42      39      MyCatName5

产品

productid   
catid   
productname     
shortdescription    
description

我想从 products 表中获取所有产品,其中父 id 为 39,但如您所见,我在表 products 中没有父 catid。我也应该得到类别名称。如何构建查询?

【问题讨论】:

  • 请告诉我们您尝试过的查询以及失败的地方。如果您希望我们为您做这件事,请将其标记为“免费为我工作”;-)
  • 嗨..抱歉省略了...我正在尝试:SELECT p.* FROM products p LEFT INNER JOIN products_categories c ON (p.catid = c.catid AND c.parentid = 39 )
  • @user2417624:将其添加到您的问题中,您可能会得到一些反对票。

标签: mysql join


【解决方案1】:

试试这个:

select P.productid
from Products P join Categories C
  ON P.catid=C.catid
where C.parentid = 39

【讨论】:

    【解决方案2】:

    你可以JOIN进入分类表:

    SELECT p.* FROM
    products p
    INNER JOIN categories c ON (p.catid = c.catid AND c.parentid = 39)
    

    【讨论】:

    • 嗨,吉姆,您的查询效果很好,您知道我怎样才能获得类别名称吗?
    • @user2417624 您可以使用 c.columnname 选择任何类别字段。 IE。您可以将第一行更改为:SELECT p.*,c.categoryname
    • 谢谢,工作就像一个魅力...感谢您的时间和帮助
    • @user2417624 没问题,很乐意提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多