Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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
Java 如何使用单个查询从不同的表中获取不同的列?_Java_Mysql_Sql_Sql Server - Fatal编程技术网

Java 如何使用单个查询从不同的表中获取不同的列?

Java 如何使用单个查询从不同的表中获取不同的列?,java,mysql,sql,sql-server,Java,Mysql,Sql,Sql Server,我需要你的谦虚的帮助来理解web应用程序的概念。我希望使用单个查询从不同的表中获取不同的列。像pk_datavarchar这样的所有表中都有一列相同。但是我需要基于pk_datavarchar列的不同列。例如,我需要第一个表中的用户名和第二个表中的地址,第三个表中的年龄和第四个表中的成本。但我还需要在pk_datavarchar列中使用where子句 我们可以用另一种方式来理解这个问题。我有一个HashSet变量,它有许多字符串datapk_数据。我希望基于此哈希集记录获取数据 HashSet的

我需要你的谦虚的帮助来理解web应用程序的概念。我希望使用单个查询从不同的表中获取不同的列。像pk_datavarchar这样的所有表中都有一列相同。但是我需要基于pk_datavarchar列的不同列。例如,我需要第一个表中的用户名和第二个表中的地址,第三个表中的年龄和第四个表中的成本。但我还需要在pk_datavarchar列中使用where子句

我们可以用另一种方式来理解这个问题。我有一个HashSet变量,它有许多字符串datapk_数据。我希望基于此哈希集记录获取数据

HashSet的所有字符串并不属于所有表


请给出解决此问题的建议。

这只是伪代码,因为我实际上不知道表中的内容和/或表名。。但这是你应该采取的一般方法

SELECT u.username, a.address, p.age, b.cost
FROM users u
JOIN address a ON a.pk_data = u.pk_data
JOIN person p on p.pk_data = u.pk_data
JOIN bills b ON b.pk_data = u.pk_data
WHERE u.pk_data = "whatever"

在这里,我只调用了表用户、地址、人员、账单。。你可以把它改成你想要的任何东西。但是逻辑是连接4个表的

在其他选项中,您可以使用隐式内部连接:

select
    first_table.pk_data, first_table.user_name, second_table.address, third_table.age, fourth_table.cost
from
    first_table, second_table, third_table, fourth_table
where
    first_table.pk_data = 'value'
    and second_table.pk_data = first_table.pk_data
    and third_table.pk_data = first_table.pk_data
    and fourth_table = first_table.pk_data

你们需要学习join queries@madhawa priyashantha,我不需要看到一个列的数据应该与其他表的列或列匹配not@user3860841如果你想要一个正确的答案,你必须发布表格结构和一些数据。。我只是把一些东西放在一起作为一个总体想法,现在这真的是SQL 101的东西,试试看,否则这会有帮助的。@Used\u By\u已经不推荐W3学校了。。。这是不好的,它展示了如何做sql注入所不能容忍的事情。不,你不应该建议有人使用旧的Ansi方法通过笛卡尔积连接表格。。当你不使用Join时有很多限制我同意!不推荐使用ANSI之前的黑暗时代,please@JohnRuddell例如例如,MS SQL Server和Oracle会将它们视为相同的执行计划。@Caffé,感谢您的建议,但如果第一个表中的任何记录不匹配,而第二个表中的任何记录匹配,则不会提取任何记录,先生ji@Caffé如果您不使用连接,那么当您不想过滤掉一些数据时会发生什么?笛卡尔积不是您想要的,但您不希望过滤掉表中不存在的某些行。。。不能这样做。。。但是你可以用左键连接。这只是众多例子中的一个