当前位置: 首页 > 面试题库 >

MySQL选择不在表中的位置

岳鸿畴
2023-03-14
问题内容

我有2个具有相同主键的表(A和B)。我想选择A中而不是B中的所有行。

select * from A where not exists (select * from B where A.pk=B.pk);

但是,这似乎很糟糕(A中只有10万行,而B中只有3-10k的行大约2秒)

有更好的方法来运行此吗?也许是左派?

select * from A left join B on A.x=B.y where B.y is null;

根据我的数据,运行速度似乎稍快(〜10%),但是总体上呢?


问题答案:

我以第二个示例的格式使用查询。联接通常比相关子查询更具可伸缩性。



 类似资料:
  • 问题内容: 如何选择一个表中所有未出现在另一表中的行? 表格1: 表2: 表1中不在表2中的行的示例输出: 也许这样的事情应该工作: 问题答案: 如果您在另一条注释中提到有300列,并且想要对所有列进行比较(假设这些列的名称相同),则可以使用a 隐式联接两个表之间所有匹配的列名称,以便不必繁琐地手动输入所有加入条件:

  • 我能够同时获得mysql查询结果的值和行。 但我很难获得查询的单个输出。例如: 我需要显示结果。但我没有得到结果。 我尝试了以下几种方法: 但我没有成功地显示(获取)实际值。

  • 问题内容: 我是MSSQL用户,现在将数据库转换为MySQL。我在MySQL中编写以下查询: 我得到以下错误 如何用MySQL正确编写这样的查询? 问题答案: 使用CREATE TABLE SELECT语法。 http://dev.mysql.com/doc/refman/5.0/en/create-table- select.html

  • 问题内容: 有没有一种方法可以针对具有指向ArrayList或List的where子句的数据源(可以是sql,oracle或access)创建查询? 例子: 我已经看到了使用Linq的一些方法,但是如果可以避免的话,我宁愿不诉诸于此。 问题答案: 您可以使用。尝试这样的事情: 附带说明,这不能保护您免受SQL注入的侵害-希望本示例将为您指明正确的方向。

  • 问题内容: 我正在运行此查询 但这不是我想要的结果,它返回多行。 我的一张桌子看起来像这个名字: 另一个表看起来像这个名字: 我如何使其选择查询,以便可以从两个表中获取与之相关的所有值,并使它看起来像这样 所需的输出: 谢谢!(提前!) 问题答案: 为您提供所需的输出(但这并不灵活,因此,如果添加要输出的更多详细信息,将无法进行更改而不进行更改):-

  • 问题内容: 我有一个关于ORACLE的问题,我写了一个PLSQL CODE来检查一个表是否存在,如果存在,那么我从该表中选择一些东西。 如果(表存在)从表中选择…。 问题是,即使表条件不存在且select语句从不执行,即使表不存在,我也总是会收到错误消息。 我认为这是因为在编译时检查了我的代码:“ select from ..”,如果表不存在,则会打印错误。我该如何解决这样的问题?..这是我的代码