MySQL返回带有join和like语句的所有结果

问题描述 投票:-1回答:1

我正在尝试编写一个查询,该查询将返回与匹配多个关键字相关的所有相关行。最初,如果我这样写查询:

select * from urls u, url_data d, url_link l where d.keywords like '%html%' and l.url_data=d.id AND l.url_id=u.id;

并且输出正确。我得到与此搜索词“ html”相关的行。当我将查询更新为此:

select * from urls u, url_data d, url_link l where d.keywords like '%html%' or d.keywords like '%css%' and l.url_data=d.id AND l.url_id=u.id;

或如果我继续追加like语句,则输出将重复。例如,enter image description here

这里到底发生了什么?我正在努力寻找适当的解决方法。我可以为每个关键字单独运行查询,但这似乎很多余。

编辑:澄清:我有3张桌子。 urls(id,链接)url_data(id,关键字,标题,描述)和url_link(url_id,url_dataid)。我从url_data获取相关的ID,然后在URL表中查找ID的匹配索引。我对INNER JOIN的文档不熟悉,我只看到2个表。

mysql join search
1个回答
0
投票
[INNER JOIN有两个表与3相同,您只需找到连接列。

[如果缺少其他选项卡上没有对应行的某些列,则可以尝试LEFT JOIN

SELECT u.* , d.* ,l.* FROM urls u INNER JOIN url_link l ON l.url_id=u.id INNER JOIN url_data d ON l.url_data=d.id WHERE d.keywords like '%html%';

© www.soinside.com 2019 - 2024. All rights reserved.