【问题标题】:Mysql query based on row value of another tableMysql查询基于另一个表的行值
【发布时间】:2019-09-08 19:19:25
【问题描述】:

有两个mysql表如

表 1

Id
Field1
Field2

表2

Id
LinkId
Field3
Field4

链接表格的常用字段是Table1.IdTable2.LinkId.

同样重要的是,Table2 可以有多个 LinkId 相同的行。

所以我一直试图弄清楚的是一个 mysql 查询,用于选择 Table1 中的所有行,这些行在 Table2 中具有链接行或更多行,其中 Field3 包含某个值。这很容易吗?

【问题讨论】:

  • Hint ... JOIN .. 无论如何更新您的问题添加适当的数据样本和预期结果

标签: mysql


【解决方案1】:

只需使用JOIN

SELECT Table1.*
FROM Table1 A JOIN Table2 B ON A.Id = B.LinkID
WHERE B.Field3 IN ('Your inputs')

【讨论】:

  • 如果Table2 有多个符合条件的行,此查询不会返回多行吗?
  • No.. 它将返回 table1 与 table2 linkedid 匹配的所有 rowa
  • @Vignesh Kumar A,如果 table2 每个 table1 的 id 有多个匹配行,它肯定会返回多行。如果需要,您应该尝试distinctgroup by 使其独一无二。
【解决方案2】:

FROM 子句中可以有多个表:

SELECT *
FROM Table1, Table2
WHERE Table2.Field3 = 'certain value'
AND Table1.Id = Table2.LinkId

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2015-10-14
    • 2020-09-26
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多