【问题标题】:MYSQL select query based on another tables entries基于另一个表条目的MYSQL选择查询
【发布时间】:2011-05-09 17:59:31
【问题描述】:

由于我是 MySql 的初学者,我对此感到困惑。

这是两张表的基本组成

表 1 id,product_id,product_name

表 2 id,product_id,活跃

现在我知道如何使用 select 语句从一个表中查询结果,但是当我必须涉及两个表时,我就迷路了。不确定我是否必须使用内连接、左连接等。

那么,只有在表 2 中处于活动状态时,如何才能从表 1 中返回 product_id 的结果?

【问题讨论】:

  • 也支持您接受的答案。这是一种礼貌的表示感谢的方式。

标签: mysql join conditional-statements


【解决方案1】:

您可以使用 JOIN(正如 Fosco 指出的那样),但您可以在 WHERE 子句中执行相同的操作。我注意到它比 JOIN 更直观一点,特别是对于正在学习 SQL 的人。此查询根据 product_id 连接两个表并返回那些处于活动状态的产品。我假设“活动”是布尔类型。

SELECT t1.*
FROM Table1 t1, Table2 t2
WHERE t1.product_id = t2.product_id AND t2.active = TRUE

W3Schools 有一个很好的关于不同类型 JOIN 的基础教程。见INNER JOINLEFT JOINRIGHT JOINFULL JOIN

【讨论】:

    【解决方案2】:

    连接两个表非常简单:

    select t1.* 
    from Table1 t1
    join Table2 t2 on t1.product_id = t2.product_id
    where t2.active = 'Y'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      相关资源
      最近更新 更多