Java中强大而弱的封装(Strong and Weak encapsulation in Java)
请告诉我java语言的强弱封装之间的区别。 封装是数据的绑定,它是在一个叫做类的单元中的相关函数。 那么,这个术语意味着弱而强大的封装?
Please, tell me the difference between strong and weak encapsulation w.r.t. java language. Encapsulation is binding of data and it's associated functions in a single unit called class. So, what the term means weak and strong encapsulation?
原文:https://stackoverflow.com/questions/38138270
更新时间:2022-07-05 11:07
最满意答案
将右侧表格条件从
WHERE
到ON
以获得真正的LEFT JOIN
结果。SELECT CLI.id client_id ,CLI.name client_name ,VLD.number_of_hours number_of_hours FROM client CLI LEFT JOIN validation VLD ON CLI.id = VLD.client_id AND VLD.record_id = 392;
(在WHERE中,左连接返回正常的内连接结果。)
Move the right side table condition from
WHERE
toON
to get trueLEFT JOIN
result.SELECT CLI.id client_id ,CLI.name client_name ,VLD.number_of_hours number_of_hours FROM client CLI LEFT JOIN validation VLD ON CLI.id = VLD.client_id AND VLD.record_id = 392;
(When in WHERE, the left join returns regular inner join result.)
相关问答
更多-
INNER JOIN是您应该使用的ANSI语法。 通常认为它更易于阅读,特别是当您加入很多表格时。 只要需要,它也可以轻松地替换为外部连接。 WHERE语法是更多的关系模型导向。 两个表的结果JOIN'ed是应用了过滤器的表的笛卡尔乘积,其仅选择具有匹配列的那些行。 使用WHERE语法更容易看到这一点。 至于你的例子,在MySQL (通常在SQL )这两个查询是同义词。 还要注意, MySQL还有一个STRAIGHT_JOIN子句。 使用此子句可以控制JOIN顺序:哪个表在外部循环中扫描,哪个表在内部循环中 ...
-
NOT IN子句和NULL值(NOT IN clause and NULL values)[2024-02-16]
查询A与以下相同: select 'true' where 3 = 1 or 3 = 2 or 3 = 3 or 3 = null 由于3 = 3是真的,你会得到一个结果。 查询B与以下相同: select 'true' where 3 <> 1 and 3 <> 2 and 3 <> null 当ansi_nulls打开时, 3 <> null是UNKNOWN,所以谓词计算结果为UNKNOWN,你没有得到任何行。 当ansi_nulls关闭时, 3 <> null为true,所以谓词的计算结果为tru ... -
您的where子句过滤掉空值: where Absences.Type = 3223 你是从openquery子查询到openquery ; 然后仅过滤Absences列中具有特定(非空)值的行。 你是不是想加入另一种方式,从Absenses到openquery ? Your where clause is filtering out null values: where Absences.Type = 3223 You are left-joining from the openquery subqu ...
-
将右侧表格条件从WHERE到ON以获得真正的LEFT JOIN结果。 SELECT CLI.id client_id ,CLI.name client_name ,VLD.number_of_hours number_of_hours FROM client CLI LEFT JOIN validation VLD ON CLI.id = VLD.client_id AND VLD.record_id = 392; (在WHERE中,左连接返回正常 ...
-
这不是Teradata特有的,它在所有RDBMS中都是相同的(或者至少应该是相同的)。 任何与NULL的比较都会导致UNKNOWN和NOT IN是AND状态: personid <> 1st_value_in_list AND personid <> 2nd_value_in_list AND AND personid <> NULL 这已经被多次讨论过了,例如NOT IN子句和NULL值 It's not specific to Teradata, it's the same (or at least s ...
-
您可以将它添加到Join子句: SELECT f_assetnetbiosname, COUNT(f_sessiondate) as 'Sessions' FROM tb_assets ass LEFT OUTER JOIN tb_sessions ses ON ses.f_sessionnetbiosname = ass.f_assetnetbiosname AND f_sessiondate BETWEEN '04/01/2015' AND ...
-
当表具有相关数据时使用JOIN 。 这里,2个表彼此无关。 更好的选择是使用UNION 。 SELECT id, randomNumber FROM tableA WHERE ID IN (0,1,2,3) UNION ALL SELECT id, randomNumber2 FROM tableB WHERE ID IN (0,1,2,3) 或者,只使用2个单独的查询并合并结果。 JOINs are used when the tables have related data. Here, the ...
-
在where子句中查找空值时查询不起作用(Query not working when looking for null values on the where clause)[2022-10-23]
处理NULL ,不能使用=或<>因为值是未知的 ,而是使用IS NULL或IS NOT NULL , WHERE COLLABORATORS.userid = 23 and FOLDER.parent IS NULL MySQL - 使用NULL值 when dealing with NULL, you cannot use = or <> since the values are unknown but instead use IS NULL or IS NOT NULL, WHERE COLLABOR ... -
您可能希望显式选择空值: SELECT values... FROM bcharge charge LEFT OUTER JOIN chgHist history ON charge.key1 = history.key1 AND charge.key2 = history.key2 AND charge.key3 = history.key3 AND charge.chargeType = history.chargeType WHERE charge.chargeTyp ...
-
WHERE子句中为NULL(NULL in WHERE clause)[2022-01-10]
您询问是否包含SQL查询 WHERE col = ? 将自动转换为 WHERE col IS NULL 通过将NULL值绑定到参数。 答案是否定的 。 如果列具有NULL值,则它永远不能与任何内容进行比较。 您需要一个不同的准备查询。 You asked if a SQL query containing WHERE col = ? will automatically be converted to WHERE col IS NULL by binding a NULL value to ...