Mysql 基于条件 table 加入
Mysql condition based table join
我想根据以下情况加入两个 table:
需要显示所有要求table值
在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 JOIN
ed table 的条件需要转到 JOIN
的 ON
子句:
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
周围加上单引号
我想根据以下情况加入两个 table:
需要显示所有要求table值
在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 JOIN
ed table 的条件需要转到 JOIN
的 ON
子句:
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