我有一些包含某些产品属性的表格:
table properties(
prop_id int,
product_id int
)
我的问题是:是否可以选择匹配的属性而不从结果中过滤它们?例如:
select property_id from properties WHERE property_id IN(1,3,5);
您只能获得与1,3,5匹配的行。 我需要所有行,但有关于哪些行符合我的标准的信息。 我不想使用'UNION'。
感谢您的帮助。
答案 0 :(得分:6)
我没有mySQL的经验,但假设它支持case
语句(或类似的东西),你可以这样做:
select
prop_id,
product_id,
(case when prop_id in (1, 3, 5) then 1 else 0 end) as matches_criteria
from properties
答案 1 :(得分:2)
您可以使用案例陈述:
SELECT
prop_id,
product_id,
(CASE
WHEN property_id IN(1,3,5) THEN 1
ELSE 0
END)
FROM properties;
答案 2 :(得分:1)
左外连接
select
parent.name
,child.name
from parent
left outer join child on parent.familyid=child.familyid
将列出所有父母,无论他们是否有孩子
答案 3 :(得分:0)
SELECT
IF (property_id IN (1, 3, 5), 1, 0) AS matched
FROM
properties;