正如我们所知,LEFT JOIN SQL 语句给出了 LEFT 表中的所有值,并通过右表中的 id(外键)给出了联合值。例如,我有下表
comments
comment_id
parent_id
comment_body
该表有以下数据
-----------|-----------|-------------------|
comment_id | parent_id | comment_body |
-----------|-----------|-------------------|
1 | NULL | parent comment |
-----------|-----------|-------------------|
2 | 1 | child comment |
-----------|-----------|-------------------|
3 | NULL | parent comment |
-----------|-----------|-------------------|
4 | 1 | child comment |
-----------|-----------|-------------------|
5 | 3 | child comment |
-----------|-----------|-------------------|
6 | 1 | parent comment |
-----------|-----------|-------------------|
7 | NULL | parent comment |
-----------|-----------|-------------------|
8 | 1 | child comment |
-----------|-----------|-------------------|
9 | 7 | child comment |
-----------|-----------|-------------------|
10 | 3 | child comment |
-----------|-----------|-------------------|
例如,我在上表中运行以下查询
SELECT c1 . * , c2 . *
FROM comments c1
LEFT JOIN comments c2 ON c2.parent_id = c1.comment_id
WHERE c1.parent_id IS NULL
它将给出以下输出
-----------|-----------|---------------|------------|-----------|---------------|
comment_id | parent_id | comment_body | comment_id | parent_id | comment_body |
-----------|-----------|---------------|------------|-----------|---------------|
1 | NULL |parent comment | 1 | 1 | child comment |
-----------|-----------|---------------|------------|-----------|---------------|
1 | NULL |parent comment | 4 | 1 | child comment |
-----------|-----------|---------------|------------|-----------|---------------|
1 | NULL |parent comment | 6 | 1 | child comment |
-----------|-----------|---------------|------------|-----------|---------------|
1 | NULL |parent comment | 8 | 1 | child comment |
-----------|-----------|---------------|------------|-----------|---------------|
3 | NULL |parent comment | 5 | 3 | child comment |
-----------|-----------|---------------|------------|-----------|---------------|
3 | NULL |parent comment | 10 | 3 | child comment |
-----------|-----------|---------------|------------|-----------|---------------|
7 | NULL |parent comment | 9 | 7 | child comment |
-----------|-----------|---------------|------------|-----------|---------------|
在这里,我强调了价值观,这是额外的,我不需要它们。
在我看来,这些额外的值可能会提高性能。我可以得到以下格式的输出吗
如果不可能,请指导我上述查询的优缺点是什么?我应该使用它还是不使用它?