Mysql 基于条件 table 加入

Mysql condition based table join

我想根据以下情况加入两个 table:

  1. 需要显示所有要求table值

  2. 在requirement_id和inquiry_id的基础上加入第二个table(prod_spec)。

Table 1(要求):

Table2(prod_spec):

使用下面的查询我得到以下结果:

SELECT requirements.id,requirements.requirement,prod_spec.evidence,prod_spec.status,prod_spec.no_specify,prod_spec.inquiry_id FROM requirements LEFT JOIN product_spec开prod_spec.requirement_id=requirement.id

问题是当我将 where 条件如:where inquiry_id='67' 放入 sql 查询时没有得到任何结果。请告诉我如何根据 inquiry_id.

显示行

仅供参考,requirement_id 只会在 prod_spec table 中出现一次,基于 inquiry_id。

The problem is not getting any result when I put the where condition eg: where inquiry_id = '67' to the sql query

LEFT JOINed table 的条件需要转到 JOINON 子句:

SELECT r.id,r.requirement, ps.evidence,ps.status, ps.no_specify, ps.inquiry_id 
FROM requirements r
LEFT JOIN prod_spec 
    ON  ps.requirement_id = requirement.id 
    AND ps.inquiry_id = 67   --> here

基本原理:如果您将该条件放在 WHERE 子句中,那么它就成为强制性的;因此,requirements 中在 prod_spec 中没有匹配项的行将从结果集中逐出。

旁注:

  • table 别名使查询更易于编写和阅读

  • 好像inquiry_id是个数字,应该这样比较;不要在文字 67

    周围加上单引号