如何编写Join查询获取目标数据?解决Inner Join仅返回单行的问题
如何获取包含所有article记录的关联查询结果?
你用INNER JOIN只得到一行是完全正常的——因为内连接只会返回两张表中同时存在匹配关系的记录,也就是只有MyID在两个表都出现的那一行才会被筛选出来。而你需要的是保留article表的所有记录,不管file表里有没有对应的MyID,这时候应该用**左连接(LEFT JOIN)**来实现。
正确的SQL查询语句
SELECT a.Date, a.MyID, a.Texte, f.link FROM article a LEFT JOIN file f ON a.MyID = f.MyID;
语句说明
LEFT JOIN(也可写为LEFT OUTER JOIN)的核心逻辑是:保留左表(这里是article)的所有记录,右表(file)中能匹配上的记录会被关联进来,没有匹配到的字段就会显示为NULL(对应你想要的空值效果)。- 我们给两张表起了别名
a和f,能让SQL语句更简洁易读。
执行这条查询后,就能得到你预期的结果:
| Date | MyID | Texte | link |
|---|---|---|---|
| 06/05/2019 | AC19011 | value 1 | http:/link1.com |
| 23/12/2016 | P811610-12 | value 2 | |
| 29/11/2017 | P8116-150 | value 3 |
内容的提问来源于stack exchange,提问作者user15973370
相关产品推荐
相关产品推荐

