Tag: join

如何通过JOIN从其他表中find不存在的数据?

我有两个表TABLE1,如下所示: id name address 1 mm 123 2 nn 143 和TABLE2 W / C看起来像: name age mm 6 oo 9 我想通过比较TABLE1和TABLE2来获取不存在的名称。 所以基本上,我必须得到第二行,W / C有一个NN名称不存在于TABLE2 ,输出应该是这样的: id name address 2 nn 143 我试过这个,但不起作用: SELECt w.* FROM TABLE1 W INNER JOIN TABLE2 V ON W.NAME <> V.NAME 而且它仍然得到现有的logging。

使用数组参数多次调用set-returning函数

这是plpgsql函数的一个变体, 它返回多个被多次调用的列 。 但是,我希望find一个解决我的特定情况。 我有一个函数,用给定的参数处理行数组,并返回一组行+一个新的列。 CREATE OR REPLACE foo(data data[], parameter int) RETURNS SETOF enhanceddata AS … 该function仅对一组数据有效 SELECT * FROM foo( (SELECT ARRAY_AGG(data) FROM datatable GROUP BY dataid WHERE dataid = something), 1) 但我想使它与多组数据一起工作,而不将数据传递给函数。 我尝试了一些变化: SELECT dataid, (foo(ARRAY_AGG(data)),1).* FROM dataset WHERE dataid = something — only testing on 1 GROUP BY dataid 但是这个函数被每一列调用一次。

何时使用STRAIGHT_JOIN和MySQL

我只是有一个相当复杂的查询,我正在工作,它需要8秒钟运行。 EXPLAIN显示出奇怪的表格顺序,即使FORCE INDEX提示也没有使用我的索引。 我遇到了STRAIGHT_JOINjoin关键字,并开始用它replace一些我的INNER JOIN关键字。 我注意到很大的速度提高。 最后我用STRAIGHT_JOINreplace了所有的INNER JOIN关键字,现在运行时间是0.1秒。 我的问题是你什么时候使用STRAIGHT_JOIN,什么时候使用INNER JOIN? 如果您正在编写好的查询,是否有任何理由不使用STRAIGHT_JOIN?

SQLite – 你如何连接来自不同数据库的表?

我有一个使用SQLite数据库的应用程序,一切正常。 我现在正在添加需要第二个SQLite数据库的新function,但是我很难搞清楚如何连接不同数据库中的表。 如果有人能帮我解决这个问题,我真的很感激! 编辑:看到这个问题的例子,你可以适应你的语言,当你连接数据库接受的答案中提到的。

在SQL Server中自然join

在最近的Microsoft SQL Server版本中是否支持自然连接 ? 还是有一个很好的select,使SQL Server的工作出基于参照完整性的ON子句中的谓词?

有条件的joinmysql

我有一个表id1 , id2 , type 。 type是包含另一个表的名称的枚举值。 我想用type表的名字进行join 。 例如: switch($type) case 'table1': join table1; break; case 'table2': join table2; break; 我怎样才能做到这一点?

将多个子行组合成一行MYSQL

在此先感谢,我似乎无法得到它! 我有两张桌子 Ordered_Item ID | 项目名 1 | 比萨 2 | 斯特龙博利 Ordered_Options Ordered_Item_ID | Option_Number | 值 1 43​​意大利辣香肠 1 44额外的奶酪 2 44额外的奶酪 我正在寻找输出是一个MySQL查询是这样的效果 产量 ID | Item_Name | Option_1 | Option_2 1个比萨辣香肠多余的奶酪 2 Stromboli零额外的奶酪 我已经尝试了多数选项最后在语法错误,我已经尝试了group_concat,但多数民众赞成但不是真正的我在找什么。 我认为可能是一个开始,下面有一个粗略的例子。 我需要每次select相同的顺序。 而在收集信息的程序中,没有办法可靠地确保将会发生。 是否可以根据选项号码进行连接? 另外我知道,我永远不会有超过5个选项,所以一个静态的解决scheme将工作 Select Ordered_Items.ID, Ordered_Items.Item_Name, FROM Ordered_Items JOIN (SELECT Ordered_Options.Value FROM Ordered_Options Where Option_Number = […]

MySQLjoinwhere子句

我有两张表我想join。 我希望类别表中的所有类别以及用户在category_subscriptions表中订阅的所有类别。 基本上这是我的查询到目前为止: SELECT * FROM categories LEFT JOIN user_category_subscriptions ON user_category_subscriptions.category_id = categories.category_id 这工作正常,但是我想添加一个where子句的查询结束,然后本质上使其内部/ equijoin。 SELECT * FROM categories LEFT JOIN user_category_subscriptions ON user_category_subscriptions.category_id = categories.category_id WHERE user_category_subscriptions.user_id = 1 如何获得所有类别以及特定用户仅使用一个查询订阅的所有类别? category_id是类别表和user_category_subscriptions中的关键字。 user_id驻留在user_category_subscriptions表中。 谢谢

为什么MySQL在FULL OUTER JOIN上报告语法错误?

SELECT airline, airports.icao_code, continent, country, province, city, website FROM airlines FULL OUTER JOIN airports ON airlines.iaco_code = airports.iaco_code FULL OUTER JOIN cities ON airports.city_id = cities.city_id FULL OUTER JOIN provinces ON cities.province_id = provinces.province_id FULL OUTER JOIN countries ON cities.country_id = countries.country_id FULL OUTER JOIN continents ON countries.continent_id = continents.continent_id 它说 你的SQL语法有错误; 检查对应于您的MySQL服务器版本的手册,以便在第4行的“airlines.iaco_code = airports.iaco_code […]

hibernate中JOIN和JOIN FETCH的区别

请帮我理解在哪里使用常规的JOIN和JOIN FETCH。 例如,如果我们有这两个查询 FROM Employee emp JOIN emp.department dep 和 FROM Employee emp JOIN FETCH emp.department dep 他们之间有什么区别? 如果是,哪一个要用?