[英]Cant fetch 2 values from other table SQL Query,
I'm newbie on SQL, I have 2 simple tables我是 SQL 的新手,我有 2 个简单的表格
ip_track ip_track
id ![]() |
current_ip_id ![]() |
old_ip_id![]() |
---|---|---|
1 ![]() |
1 ![]() |
1 ![]() |
2 ![]() |
2 ![]() |
9 ![]() |
3 ![]() |
1 ![]() |
8 ![]() |
And ip和ip
id ![]() |
ip ![]() |
---|---|
1 ![]() |
8.8.8.8 ![]() |
2 ![]() |
195.19.97.117 ![]() |
8 ![]() |
8.8.4.4 ![]() |
9 ![]() |
1.2.3.4 ![]() |
AND I want to get current_ip_id and old_ip_id with its ip in SELECT Statement like我想在 SELECT 语句中获取 current_ip_id 和 old_ip_id 及其 ip
id ![]() |
current_ip_id ![]() |
current_ip![]() |
old_ip_id![]() |
old_ip![]() |
---|---|---|---|---|
1 ![]() |
1 ![]() |
8.8.8.8 ![]() |
1 ![]() |
8.8.8.8 ![]() |
2 ![]() |
2 ![]() |
195.19.97.117 ![]() |
9 ![]() |
1.2.3.4 ![]() |
3 ![]() |
1 ![]() |
8.8.8.8 ![]() |
8 ![]() |
8.8.4.4 ![]() |
But if ids are different I got duplicates For example, for但如果 ID 不同,我会得到重复项 例如,对于
SELECT ip_track.id, current_ip_id, ip AS current_ip, old_ip_id, ip AS old_ip FROM ip_track INNER JOIN ip ON current_ip_id = ip.id OR old_ip_id = ip.id
id ![]() |
current_ip_id ![]() |
current_ip![]() |
old_ip_id![]() |
old_ip![]() |
---|---|---|---|---|
1 ![]() |
1 ![]() |
8.8.8.8 ![]() |
1 ![]() |
8.8.8.8 ![]() |
2 ![]() |
2 ![]() |
195.19.97.117 ![]() |
9 ![]() |
195.19.97.117 ![]() |
3 ![]() |
2 ![]() |
1.2.3.4 ![]() |
9 ![]() |
1.2.3.4 ![]() |
4 ![]() |
1 ![]() |
8.8.8.8 ![]() |
8 ![]() |
8.8.8.8 ![]() |
5 ![]() |
1 ![]() |
8.8.4.4 ![]() |
8 ![]() |
8.8.4.4 ![]() |
But expect但期待
id ![]() |
current_ip_id ![]() |
current_ip![]() |
old_ip_id![]() |
old_ip![]() |
---|---|---|---|---|
1 ![]() |
1 ![]() |
8.8.8.8 ![]() |
1 ![]() |
8.8.8.8 ![]() |
2 ![]() |
2 ![]() |
195.19.97.117 ![]() |
9 ![]() |
1.2.3.4 ![]() |
3 ![]() |
1 ![]() |
8.8.8.8 ![]() |
8 ![]() |
8.8.4.4 ![]() |
How can it be solved?如何解决?
Join the ip
table to the ip_track
table twice :两次将
ip_track
表加入到ip
表中:
SELECT
ipt.id,
ipt.current_ip_id,
ip1.ip AS current_ip,
ipt.old_ip_id,
ip2.ip AS old_ip
FROM ip_track ipt
LEFT JOIN ip ip1
ON ip1.id = ipt.current_ip_id
LEFT JOIN ip ip2
ON ip2.id = ipt.old_ip_id
ORDER BY ipt.id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.