2017-09-01 128 views
0

我搜索了很多次,做了我想做的事情,但找不到任何东西。我知道我必须使用JOIN或UNION来完成它,但我是SQL新手,并且难以理解它是如何工作的。尤其是整个依赖关系。从两个不同列表中选择不同列数的数据

这是我的挑战,我的数据库中有两个表格(还有更多),一个叫做玩家,另一个叫做组织。

我没有相同数量的列在两个表中,并且没有任何依赖关系,如果我理解正确的话。

在我的 '球员' 表,我需要列出以下几列信息: ID,DEVICE_ID和user_id说明 -

在我的 '组织' 表中,我有一个名为列名字

我想列出所有“DEVICE_ID”条目是在给定的“”的关系。这是我想作为查询:

select user_id, device_id from players 
join 
select name from organizations where name like 'test'; 

棘手的部分是,有与这两个表相同的值没有列。我的意思是,我的'组织'表中存在id或user_id,但是一个表项的值将不同于一个表。由于没有将条目链接在一起的信息,我想没有办法做到这一点,但我不是专家,因为我说过,所以也许你们有一个想法。提前致谢。

+1

添加适当的数据样本和预期结果 – scaisEdge

+2

不知道每个表中的哪些列/类型是一种处理连接或其他类型的查询的好方法。运行以下两个查询,然后用两个表的表结构更新你的问题:'SELECT * FROM players LIMIT 1' and'SELECT * FROM organizations LIMIT 1' –

+3

你是什么意思“我想列出所有”device_id “与某个给定”名称“有关的条目。”如果您确认表格之间没有关系? – scaisEdge

回答

0

首先,感谢你们所有人的惊人快速答案。有超过20列的玩家的桌子。做

SELECT * FROM players LIMIT 1; 

将导致一个不全面的一堆字符。既然已经够复杂了,我决定不这样做。

@scaisEdge我认为这将有可能通过做类似的事情;从玩家中选择device_id,其中名称如组织的“测试”名称

现在我知道它不起作用,因为这两个表之间没有关系。我希望我会有类似players.organization_id(我一开始没有编程这个东西......),但事实并非如此,我会尝试寻找另一种方式。

@ADyson我希望有一个第三个表,它是相对于“组织”但后来,我可能会遇到的困难,使以“玩家”的关系再次全息?有没有办法知道哪些表与我正在工作的表相关,如果是,哪一列恰恰是这种关系?

+0

“是否有办法知道哪些表与我正在处理的表相关,如果是,哪个列正好使该关系成为”假设数据库具有正确定义的外键,那么它将在CREATE TABLE定义中外键被定义。通常您的DBMS的数据库GUI将能够生成这样的语句。根据您的DBMS,可能会有其他脚本可以运行,这些脚本可以发现并映射表之间的关系。但只有在创建表时实际定义了关系才有效。如果他们不是,你必须猜测 – ADyson

相关问题