Mysql SQL筛选一列中的所有值,但不筛选另一列中的值
我创建了一个查询,如下所示:Mysql SQL筛选一列中的所有值,但不筛选另一列中的值,mysql,sql,Mysql,Sql,我创建了一个查询,如下所示: SELECT t1.blah , t2.blah FROM table1 AS t1 INNER JOIN table2 AS t2 ON (t1.id = t2.id) 所以结果看起来像 t1.blah t2.blah ================= 390 400 401 401 501 501 36 36 我想要的是提取t1.blah中的所有值,但决不提取t2.blah中的所有值。在我的示例
SELECT t1.blah , t2.blah
FROM table1 AS t1
INNER JOIN table2 AS t2 ON (t1.id = t2.id)
所以结果看起来像
t1.blah t2.blah
=================
390 400
401 401
501 501
36 36
我想要的是提取t1.blah中的所有值,但决不提取t2.blah中的所有值。在我的示例中,我应该得到值390作为最终结果
我试图用
进行一些测试,但没有成功。例如,我如何在mysql中实现这一点。您可以在两个表中的blah
不匹配上再加一个条件:
选择t1.blah,t2.blah
从表1中取t1
内部连接表2为t2
在t1.id=t2.id上
还有t1,等等t2,等等
@RaymondNijland就我个人而言,我总是喜欢使用内部连接而不是左连接(只要可以使用内部连接),因为我发现它更有效。关于另一个主题,您是否有使用5.7+中引入的JSON_ARRAYAGG()
函数的经验?我发现MySQL在使用JSON_ArrayAg时没有使用任何索引,而不是使用GROUP_CONCAT和CONCAT函数创建JSON。“就个人而言,我总是喜欢使用内部连接而不是左连接(只要可以使用内部连接),因为我发现它更有效。”是的,我删除了我的注释,但你完全是对的。。LEFT JOIN将强制MySQL进入需要的位置,以便在LEFT JOIN子句之前对左表进行完全表/索引扫描。。出于某种原因,我从来没有想到过使用排除内部联接来选择/检查bizar是如何的…“在不同的主题上,有没有使用JSON_ARRAYAGG()的经验5.7+中引入的函数?我注意到MySQL在使用JSON_ArrayAg时没有使用任何索引,而使用GROUP_CONCAT和CONCAT函数创建JSON时则没有使用任何索引。“用你知道的和我一样好的例子提出一个问题,在这里的评论中没有真正回答;-)@RaymondNijland是的,在得出结论之前,我正在对5.7的不同补丁进行一些测试,并发布了一个问题(我甚至可能在mysql网站上做一个bug报告)。。好的,我可以在源代码中窥探一下JSON_ARRAYAGG
是如何实现的,MySQL以“快速”添加新功能而闻名,对这些功能的优化可能会在几个月后、几年后或根本不会发生。。