Explain the different types of joins in DBMS and describe how you implemented them in a DBMS project, including how you optimized pattern-drawing logic.
Use the provided project, owner, and task data to demonstrate the implementation. Include projects with no tasks and explain how unmatched records are handled.
Output
- Return one row per project-pattern line for projects with a matching owner.
- Include
project_name, owner_name, task_count, line_number, and pattern_line.
- Draw at least one line per project, with one additional asterisk per task, ordered by project name and line number.