这是我的第一张 table 。
然后第二个是
现在我试图做这样的左联接
SELECT t1.StackID FROM t1 LEFT JOIN t2 on t1.StackID=t2.StackID
输出
我很困惑,这是正确的输出吗?难道这不应该只返回左侧表中存在的5行。
最佳答案
这是正确的输出。您正在执行LEFT JOIN
,因此对于LEFT表中的每个记录,DBMS都会“连接”相应的RIGHT表记录(-s)(如果没有JOIN
条件的对应记录,则为NULL;还请记住,如果存在多于1相应的记录-所有记录都将加入-这个问题就是为什么您从第一张表中不仅获得5条记录)。
您想要实现的目标应该通过DISTINCT
修饰符完成,即
SELECT DISTINCT t1.StackID FROM t1 LEFT JOIN t2 ON t1.StackID=t2.StackID;
有关SQL中的JOIN的更多信息,您可以阅读here。
关于mysql - 左加入Mysql吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18614105/