如何构造复杂的SELECT语句

时间:2014-01-21 08:23:26

标签: mysql

我想制作复杂的SELECT语句,但我不知道该怎么做

我可以把它写成人类语言,所以

我想选择所有 product_id 及其相应的 brand_name

表是这些

1)品牌(将品牌ID与品牌名称联系起来) 包含 brand_id 和相应的 brand_name

的行

2)Field_brand(将实体链接到品牌ID。实体是商店中的产品,每个实体属于一个品牌。产品可以包含一个或多个产品变体(参见下表)) 包含 entity_id 的行和相应的 brand_id

3)Field_products(链接产品及其变体,即几个product_id可以有一个entity_id) 包含 product_id 的行和相应的 entity_id

1 个答案:

答案 0 :(得分:2)

这可以让你走上正轨

SELECT
        Field_products.product_id,
        Brands.brand_name
    FROM Brands
    INNER JOIN Field_brand on Brands.brand_id = Field_brand.brand.id
    INNER JOIN Field_products on Field_brand.entity_id = Field_products.entity_id

更好地理解joins:如果您希望将结果集缩减为在所有已连接集之间共享的集合,则执行inner join(即,您只需要可以在你加入的集合),这就是这里发生的事情。

例如,如果您使用left joins,结果集将包括原始集合中的每个条目加上相应的条目,但不会删除任何非对应的行(原始集合中的任何行都不会被保留)如果他们无法匹配联合集合。)