Java 如何使用单个查询从不同的表中获取不同的列?
我需要你的谦虚的帮助来理解web应用程序的概念。我希望使用单个查询从不同的表中获取不同的列。像pk_datavarchar这样的所有表中都有一列相同。但是我需要基于pk_datavarchar列的不同列。例如,我需要第一个表中的用户名和第二个表中的地址,第三个表中的年龄和第四个表中的成本。但我还需要在pk_datavarchar列中使用where子句 我们可以用另一种方式来理解这个问题。我有一个HashSet变量,它有许多字符串datapk_数据。我希望基于此哈希集记录获取数据 HashSet的所有字符串并不属于所有表Java 如何使用单个查询从不同的表中获取不同的列?,java,mysql,sql,sql-server,Java,Mysql,Sql,Sql Server,我需要你的谦虚的帮助来理解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é如果您不使用连接,那么当您不想过滤掉一些数据时会发生什么?笛卡尔积不是您想要的,但您不希望过滤掉表中不存在的某些行。。。不能这样做。。。但是你可以用左键连接。这只是众多例子中的一个