繁体   English   中英

仅与引用父表的第一行联接

[英]Join only with first row that refers to parent table

我有以下表格:

A          B
id | a |   id | b
--------   -------
1  | . |   1  | 1
--------   -------
2  | . |   1  | 2
--------   -------
3  | . |   2  | 1
           -------
           2  | 2

B.id是在A.id上引用的外键。 我想显示A.id,Aa,Bb,但是表A中的列应仅与表B中引用A.id的第一行连接。 我还想从表A中选择在表B中没有对应行的行。因此结果应如下所示:

A.id | A.a | B.b
----------------
  1  |  .  |  1 
----------------
  2  |  .  |  1
----------------
  3  |  .  |

在此先感谢您的帮助。

只需使用GROUP BYLEFT JOIN子句:

SELECT A.id, A.a, B.b
FROM A
LEFT JOIN B ON B.id = A.id
GROUP BY A.id
ORDER BY A.id ASC

尝试这个 -:

SELECT A.id, A.a, B.b
FROM A
LEFT JOIN (
            SELECT b1.id, b1.b
            FROM B b1, B b2
            WHERE b1.b < b2.b
          )B
ON A.id = B.id
GROUP BY A.id
ORDER BY A.id asc

暂无
暂无

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

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