如果p.ptype不在c.ptype的集合中,我想选择distinct(p.ptype),同时我也想得到c.category
数据库表:p
id ptype
1 Shirts
2 Cups
3 Shirts
4 Mugs
数据库表:c
id category ptype
1 Test Pants, Shirts, TShirts
2 Test1 Cups, Mats, Rugs
我尝试的sql命令如下
SELECT DISTINCT(p.ptype), IF(FIND_IN_SET(p.ptype, c.ptype), c.category,'') as category
FROM p, c
这将输出设置为两次的p.ptype。一次是空白的c.category字段,另一次是填充的c.category字段。
然而,期望的输出如下
ptype category
Shirts Test
Cups Test1
Mugs
1条答案
按热度按时间qc6wkl3g1#
试着做一个明确的
LEFT JOIN
上ptype
从p
表出现在c
表格:在最初的查询中,我们正在执行交叉联接。这将在两个表的记录之间生成所有可能的组合。使用交叉连接很难得到正确的答案,因此最好使用左连接。
此处演示:
sqlfiddle公司