如何在使用某些条件筛选每个表之后连接两个表,并在获得筛选结果后连接两个结果。
已尝试代码,但显示语法错误
SELECT *
FROM Table1
WHERE flag1 = 0
JOIN SELECT *
FROM TABLE2
where flag2 = 0 on Table1.email = TABLE2.email
除非我遗漏了什么,否则这应该很简单。伪代码,但是您可以用几种方法来解决这个问题...
SELECT
*
FROM
Table1
JOIN TABLE2 ON Table1.orderlist_email = TABLE2.email
Table1.flag1 = 0
AND TABLE2.flag2 = 0
或者,您可以将WHERE
条件添加到JOIN
,如下所示:
SELECT
*
FROM
Table1
JOIN TABLE2 ON Table1.orderlist_email = TABLE2.email
AND Table1.flag1 = 0
AND TABLE2.flag2 = 0
我认为您关心的是这是否意味着引擎仍将对两个表执行完全扫描,而不是坚持使用它将尝试加入的“预过滤”集。现代发动机应该足够聪明,可以弄清楚这些东西,但根据查询的复杂性,你的里程可能会有所不同。
可能没有足够的(RAM/缓存)空间来保存筛选结果,然后将它们连接在一起。它可能比你预期的慢。
*从技术上讲,你可以,但不是那么有效。
SELECT *
FROM (
SELECT * FROM Table1 where flag1 = 0
) A
JOIN (
SELECT * FROM TABLE2 where flag2 = 0
) B
ON A.orderlist_email = B.email;
但是,我建议先加入他们,然后再加入所有内容。MySQL(或任何sql引擎)将(通常)很好地为您优化它。
SELECT *
FROM Table1
JOIN TABLE2
ON A.orderlist_email = B.email
WHERE Table1.flag1 = 0
AND TABLE2.flag2 = 0;
将两个Select语句视为SUBQUERIES,将这两个子查询的结果视为两个不同的表,然后尝试连接。
SELECT * FROM
(SELECT * FROM Table1 where flag1 = 0) Table1
JOIN
(SELECT * FROM TABLE2 where flag2 = 0) Table2
on Table1.orderlist_email = TABLE2.email
问题内容: 我有两个相等的大小。列表1由10个名称组成,列表2由其电话号码组成。 我想将姓名和号码合而为一。我该怎么做呢? 问题答案: 您可以用于将第二个列表的元素添加到第一个列表: 编辑: 根据上面的说明(“ 我想要新的Arraylist中具有名称和编号的单个String。 ”),您需要循环浏览第一个列表并将第二个列表中的项目追加到它。 像这样: 如果输入: 你会得到:
我有两个。名为all_cv的csv文件。csv和common_cv。csv文件。首先,我用pandas制作了两个csv文件,然后将数据保存到一个名为join_cv_common的新文件中。由熊猫制作。在那之后,我整理了join_cv_common。熊猫的csv文件如下所示,存储的数据存储到名为sorted_cv_common的新文件中。csv。我想重写pandas的这两个函数——concat和so
这是我制作的hashmap(Ik它不是最好的,也没有太多的逻辑),我想知道如果用户输入像“DVIII”这样的数据,其中“d”的值为“500”,“viii”的值为“8”,然后将它们打印为DVIII=5008,那么如何连接hashmap的值
null
下面的代码片段是从JoinedStreams的javadoc复制的 这两个流仅基于一个键(通过< code>t =计算)进行连接 我会问我如何基于多个键进行连接,例如,one.a = two.a和
我有一个两层神经网络的例子。第一层接受两个参数并有一个输出。第二个应作为第一层的结果使用一个参数和一个附加参数。应该是这样的: 因此,我创建了一个具有两个层的模型,并尝试将它们合并,但它返回了一个错误:<代码>顺序模型中的第一层必须获得“input\u shape”或“batch\u input\u shape”参数 在线<代码>结果。添加(合并)。 型号: