mysql查询重复结果
我有这个疑问。如果徽标为空或按钮为空或vanitylogo为空,我需要选择行。这似乎是工作,但,打印多行相同的中间。如何解决这个问题mysql查询重复结果,mysql,sql,Mysql,Sql,我有这个疑问。如果徽标为空或按钮为空或vanitylogo为空,我需要选择行。这似乎是工作,但,打印多行相同的中间。如何解决这个问题 SELECT fmm.mid, fmm.name , fmn.mnname, fmm.button, fmm.logo, fmm.vanitylogo FROM X fmm , Y fmn WHERE fmm.`button` = '' OR fmm.`button` = 'NUL
SELECT fmm.mid,
fmm.name ,
fmn.mnname,
fmm.button,
fmm.logo,
fmm.vanitylogo
FROM X fmm ,
Y fmn
WHERE fmm.`button` = ''
OR fmm.`button` = 'NULL'
OR fmm.`button` = 'None'
OR fmm.`logo` = ''
OR fmm.`logo` = 'NULL'
OR fmm.`logo` = 'None'
OR fmm.`vanitylogo` = ''
OR fmm.`vanitylogo` = 'NULL'
OR fmm.`vanitylogo` IS NULL
AND fmm.mid=fmn.nid
AND fmm.status='active'
AND fmm.xyz_status='active'
您正在选择表“Y fmn”。对于Y中的每一行,结果都将重复。您需要一种聚合结果的方法,可能是使用分组方式
SELECT fmm.mid,
fmm.name ,
fmn.mnname,
fmm.button,
fmm.logo,
fmm.vanitylogo
FROM X fmm ,
Y fmn
WHERE fmm.`button` = ''
OR fmm.`button` = 'NULL'
OR fmm.`button` = 'None'
OR fmm.`logo` = ''
OR fmm.`logo` = 'NULL'
OR fmm.`logo` = 'None'
OR fmm.`vanitylogo` = ''
OR fmm.`vanitylogo` = 'NULL'
OR fmm.`vanitylogo` IS NULL
AND fmm.mid=fmn.nid
AND fmm.status='active'
AND fmm.xyz_status='active'
group by fmm.mid,
fmm.name ,
fmn.mnname,
fmm.button,
fmm.logo,
fmm.vanitylogo
您正在选择表“Y fmn”。对于Y中的每一行,结果都将重复。您需要一种聚合结果的方法,可能是使用分组方式
SELECT fmm.mid,
fmm.name ,
fmn.mnname,
fmm.button,
fmm.logo,
fmm.vanitylogo
FROM X fmm ,
Y fmn
WHERE fmm.`button` = ''
OR fmm.`button` = 'NULL'
OR fmm.`button` = 'None'
OR fmm.`logo` = ''
OR fmm.`logo` = 'NULL'
OR fmm.`logo` = 'None'
OR fmm.`vanitylogo` = ''
OR fmm.`vanitylogo` = 'NULL'
OR fmm.`vanitylogo` IS NULL
AND fmm.mid=fmn.nid
AND fmm.status='active'
AND fmm.xyz_status='active'
group by fmm.mid,
fmm.name ,
fmn.mnname,
fmm.button,
fmm.logo,
fmm.vanitylogo
您的查询有两个主要问题:
或条件括起来
SELECT fmm.mid,
fmm.name ,
fmn.mnname,
fmm.button,
fmm.logo,
fmm.vanitylogo
FROM X fmm
JOIN Y fmn ON fmn.some_column = X.some_column -- FIX THIS
WHERE (fmm.`button` in ('', 'NULL', 'None')
OR fmm.`logo` IN ('', 'NULL', 'None')
OR fmm.`vanitylogo` IN ('', 'NULL')
OR fmm.`vanitylogo` IS NULL)
AND fmm.mid=fmn.nid
AND fmm.status='active'
AND fmm.xyz_status='active'
您必须用适当的列名填写“修复此”:行
关于ORs,我将一些捆绑到IN()条件中,并将批次括起来。您的查询有两个主要问题:
或条件括起来
SELECT fmm.mid,
fmm.name ,
fmn.mnname,
fmm.button,
fmm.logo,
fmm.vanitylogo
FROM X fmm
JOIN Y fmn ON fmn.some_column = X.some_column -- FIX THIS
WHERE (fmm.`button` in ('', 'NULL', 'None')
OR fmm.`logo` IN ('', 'NULL', 'None')
OR fmm.`vanitylogo` IN ('', 'NULL')
OR fmm.`vanitylogo` IS NULL)
AND fmm.mid=fmn.nid
AND fmm.status='active'
AND fmm.xyz_status='active'
您必须用适当的列名填写“修复此”:行
关于ORs,我将一些捆绑到IN()条件中,并将其括起来。在旁注中,我建议您查看此网页代码完整2,“变量名称之间心理距离的示例”在旁注中,我建议您查看此网页代码完整2,“变量名之间心理距离的示例”,但这是选择结果,其中vanitylogo为NULL,不选择其他列为NULL的其他行,但这是选择结果,其中vanitylogo为NULL,不选择其他列为NULL的其他行