Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 通过交叉连接,将行总数增加。您确定这就是您想要做的吗?正如前面提到的,基于给定的键,我想返回所有attrName、attrVal组合。与密钥一起,用户可以提供属性名,也可以不提供属性名。如果他不提供attrName,则返回与键关联的所有attrName、a_Mysql_Query Optimization - Fatal编程技术网

Mysql 通过交叉连接,将行总数增加。您确定这就是您想要做的吗?正如前面提到的,基于给定的键,我想返回所有attrName、attrVal组合。与密钥一起,用户可以提供属性名,也可以不提供属性名。如果他不提供attrName,则返回与键关联的所有attrName、a

Mysql 通过交叉连接,将行总数增加。您确定这就是您想要做的吗?正如前面提到的,基于给定的键,我想返回所有attrName、attrVal组合。与密钥一起,用户可以提供属性名,也可以不提供属性名。如果他不提供attrName,则返回与键关联的所有attrName、a,mysql,query-optimization,Mysql,Query Optimization,通过交叉连接,将行总数增加。您确定这就是您想要做的吗?正如前面提到的,基于给定的键,我想返回所有attrName、attrVal组合。与密钥一起,用户可以提供属性名,也可以不提供属性名。如果他不提供attrName,则返回与键关联的所有attrName、attrVal组合。如果用户指定了attrname(例如两个attrname),那么我只想返回这两个attrnme及其attrValue。我确实意识到我将遍历很多行,因此我正在寻找一个替代方案。IN(SELECT…优化非常差;aJOIN通常更好。



通过交叉连接,将行总数增加。您确定这就是您想要做的吗?正如前面提到的,基于给定的键,我想返回所有attrName、attrVal组合。与密钥一起,用户可以提供属性名,也可以不提供属性名。如果他不提供attrName,则返回与键关联的所有attrName、attrVal组合。如果用户指定了attrname(例如两个attrname),那么我只想返回这两个attrnme及其attrValue。我确实意识到我将遍历很多行,因此我正在寻找一个替代方案。
IN(SELECT…
优化非常差;a
JOIN
通常更好。a中有500个条目,B中有500k个条目-通过交叉连接,您总共处理了2.5亿行。您确定这就是您想要做的吗?正如前面提到的,基于给定的键,我想返回所有attrName、attrVal组合。与密钥一起,用户可以提供属性名,也可以不提供属性名。如果他不提供attrName,则返回与键关联的所有attrName、attrVal组合。如果用户指定了attrname(例如两个attrname),那么我只想返回这两个attrnme及其attrValue。我确实意识到我将遍历很多行,因此我正在寻找一个替代方案。
IN(SELECT…
优化非常差;加入通常会更好。谢谢你的回复。我只是在上面加了一条评论来解释我想要达到的目标。我同意交叉连接对我来说不是最好的选择,因此我正在寻找替代方案。你能不能建议oneCross加入不仅仅是“不是最好的选择”,而是“错误的选择”。看他的最后一个例子。@RickJames:我的回答应该更清楚。(我想我应该强调一点,OP在连接操作中使用老式的逗号表示法与交叉连接是一样的(假设查询中没有连接谓词)在一些奇怪的情况下,交叉连接可能是正确的选择……为了“在关键字中使用
,我应该更好地解释在
中插入
操作符到语句中,这让我觉得很荒谬。@Sam123:我答案末尾的查询示例应该返回您指定的结果集。不需要子查询。相同的结果可以由不同的查询模式生成,但连接模式除外(如示例所示,通常性能最佳。感谢您的回复。我刚刚在上面添加了一条评论来解释我试图实现的目标。我同意交叉连接不是我的最佳选择,因此我正在寻找替代方案。您能否建议oneCross连接不仅仅是“不是最佳选择”,而是“错误的选择”。看他的最后一个例子。@RickJames:我的回答应该更清楚。(我想我应该强调一点,OP在连接操作中使用老式的逗号符号与交叉连接是一样的(假设查询中没有连接谓词。)在一些奇怪的情况下,交叉连接可能是正确的选择……为了“在
关键字中使用
,我应该更好地解释在
中插入
操作符到语句中,这让我觉得很荒谬。@Sam123:我答案末尾的查询示例应该返回您指定的结果集。不需要子查询。相同的结果可以由不同的查询模式生成,但连接模式除外(如示例所示,通常性能最佳。感谢您的回复。我刚刚在上面添加了一条评论来解释我试图实现的目标。我同意交叉连接不是我的最佳选择,因此我正在寻找替代方案。您能否建议oneCross连接不仅仅是“不是最佳选择”,而是“错误的选择”。看他的最后一个例子。@RickJames:我的回答应该更清楚。(我想我应该强调一点,OP在连接操作中使用老式的逗号符号与交叉连接是一样的(假设查询中没有连接谓词。)在一些奇怪的情况下,交叉连接可能是正确的选择……为了“在
关键字中使用
,我应该更好地解释在
中插入
操作符到语句中,这让我觉得很荒谬。@Sam123:我答案末尾的查询示例应该返回您指定的结果集。不需要子查询。相同的结果可以由不同的查询模式生成,但连接模式除外(如示例所示,通常性能最佳。感谢您的回复。我刚刚在上面添加了一条评论来解释我试图实现的目标。我同意交叉连接不是我的最佳选择,因此我正在寻找替代方案。您能否建议oneCross连接不仅仅是“不是最佳选择”,而是“错误的选择”。看他的最后一个例子。@RickJames:我的回答应该更清楚。(我想我应该强调一点,OP在连接操作中使用老式的逗号符号与交叉连接是一样的(假设查询中没有连接谓词。)在一些奇怪的情况下,交叉连接可能是正确的选择……为了“在
关键字中使用
,我应该更好地解释在
中插入
操作符到语句中,这让我觉得很荒谬。@Sam123:我答案末尾的查询示例应该返回您指定的结果集。不需要子查询。相同的结果可以由不同的查询模式生成,但连接模式(如示例所示)通常提供最佳性能。
Select a.attrName, b2.attrVal
from table_A AS a, table_B AS b2
where a.attrId in (Select b1.attrId from Table_B b1 where key = <someKey>)
SELECT a.attrName
     , b2.attrVal
  FROM table_A a
 CROSS
  JOIN table_B b2
 WHERE a.attrId IN ( <some_list> )
SELECT t.id FROM mytable t WHERE t.id = 2 OR t.id = 3 OR t.id = 5
SELECT t.id FROM mytable t WHERE t.id IN (2,3,5)
SELECT a.attrName
     , b.attrVal
  FROM table_A a
  JOIN table_B b
    ON a.attrId = b.attrId
 WHERE b.key = '<someKey>'