[英]How can I query this in a database?
I have 2 tables 我有2张桌子
Table 1 表格1
Positon | Name | Nickname | Address
------------------------------------
1 | 2 | 3 | 4
5 | 6 | | 7
5 | 6 | | 8
Table 2 表2
Detail_seq | Details
--------------------
1 | manager
2 | Jimmy
3 | Jim
4 | Chicago
5 | Supervisor
6 | Mike
7 | Vancouver
8 | New York
and the output should be like this or something 输出应该是这样的
Position: Manager
Name: Jimmy
Nickname: Jim
Address: Chicago
Position: Supervisor
Name: Mike
Nickname:
Address: Vancouver and New York
feel free to ask questions if it is not clear. 如果不清楚,请随时提出问题。
thanks in advance 提前致谢
It's a little bit extreme to store data this way. 这样存储数据有点极端。 I can offer you to store the data categories in different tables.
我可以为您提供将数据类别存储在不同的表中。 but if you insist, this should work
但是,如果您坚持认为,这应该可行
SELECT d1.details, d2.details, d3.details, d4.details
FROM main m, details d1, details d2, details d3, details d4
WHERE m.position = d1.detail_seq
AND m.name = d2.detail_seq
AND m.nickname = d3.detail_seq
AND m.adress = d4.detail_seq
You need to join the details table one time for every detail: 您需要为每个细节一次加入细节表:
SELECT pos.Details, name.details, nick.details, adress.details
FROM table1 t1
LEFT JOIN table2 pos ON pos.detail_seq = t1.position
LEFT JOIN table2 name ON name.detail_seq = t1.name
LEFT JOIN table2 nick ON nick.detail_seq = t1.nickname
LEFT JOIN table2 address ON address.detail_seq = t1.address
I think this is what you want: 我认为这是您想要的:
SELECT Position=manager.details,
Name=Name.details,
Nickname=Nickname.details,
Address=Address.details
FROM table1 t1
LEFT OUTER JOIN table2 manager
ON t1.positon = manager.detail_seq
LEFT OUTER JOIN table2 name
ON t1.name = name.detail_seq
LEFT OUTER JOIN table2 Nickname
ON t1.nickname = Nickname.detail_seq
LEFT OUTER JOIN table2 Address
ON t1.address = Address.detail_seq
select (select details from t2 where t2.detail_seq=t1.position) position,
(select details from t2 where t2.detail_seq=t1.name) Name,
(select details from t2 where t2.det_seq=t1.nickname) nickname,
(select details from t2 where t2.det_seq=t1.address) address
from t1 ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.