繁体   English   中英

Select 如果存在于另一个表中,带有 AND 条件

[英]Select if exists in another table, with AND condition

即使在同一问题上有非常相似的主题,我也没有找到具体问题的答案。

这是我的数据库(MySQL):

Table urls
ID;URL

Table links
ID;TARGET;SOURCE

我希望 select 链接其 SOURCE 和 TARGET 存在于 urls 表中。

我猜子查询或左连接将是答案,但我似乎无法让它工作。

如果您的意思是同一链接行中的目标和源都必须存在于 urls 2 内部连接中,例如

DROP TABLE IF EXISTS LINKS,URLS;
CREATE Table urls
(ID INT,URL VARCHAR(3));

CREATE Table links
(ID INT,TARGET VARCHAR(3),SOURCE VARCHAR(3));

INSERT INTO URLS VALUES
(1,'AAA'),(2,'BBB'),(3,'CCC'),(4,'DDD');

INSERT INTO LINKS VALUES
(1,'AAA','BBB'),(2,'CCC','ZZZ'),(3,'ZZZ','DDD');

SELECT *
FROM LINKS
JOIN URLS U1 ON U1.URL = LINKS.SOURCE
JOIN URLS U2 ON U2.URL = LINKS.TARGET;

+------+--------+--------+------+------+------+------+
| ID   | TARGET | SOURCE | ID   | URL  | ID   | URL  |
+------+--------+--------+------+------+------+------+
|    1 | AAA    | BBB    |    2 | BBB  |    1 | AAA  |
+------+--------+--------+------+------+------+------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM