<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: pomuchan02</title>
    <description>The latest articles on DEV Community by pomuchan02 (@pomuchan02).</description>
    <link>https://dev.to/pomuchan02</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3839311%2Fcd846dd8-c5da-4882-9800-1919182106fa.png</url>
      <title>DEV Community: pomuchan02</title>
      <link>https://dev.to/pomuchan02</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pomuchan02"/>
    <language>en</language>
    <item>
      <title>Generate ER Diagram from SELECT Queries (JOIN Analysis Tool)</title>
      <dc:creator>pomuchan02</dc:creator>
      <pubDate>Mon, 23 Mar 2026 05:36:30 +0000</pubDate>
      <link>https://dev.to/pomuchan02/generate-er-diagram-from-select-queries-join-analysis-tool-fjc</link>
      <guid>https://dev.to/pomuchan02/generate-er-diagram-from-select-queries-join-analysis-tool-fjc</guid>
      <description>&lt;p&gt;No installation required. Runs entirely in your browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
When working with existing systems, have you ever struggled with complex SQL like this?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Too many JOINs to understand the structure&lt;/li&gt;
&lt;li&gt;Hard to visualize table relationships&lt;/li&gt;
&lt;li&gt;No ER diagram available
I had the same problem, so I built a tool that generates ER diagrams directly from SELECT queries.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Try it here: SQL2ER&lt;br&gt;
&lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://www.trancelens.com/sql2er/en/index.html" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.trancelens.com%2Fsql2er%2Fogp.png" height="auto" class="m-0"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://www.trancelens.com/sql2er/en/index.html" rel="noopener noreferrer" class="c-link"&gt;
            【Free】SQL to ER Diagram Generator | SQL2ER
          &lt;/a&gt;
        &lt;/h2&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.trancelens.com%2Fsql2er%2Flogo.png"&gt;
          trancelens.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0j2q22upcn9w7owqt8f8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0j2q22upcn9w7owqt8f8.gif" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fokwg3s3tnltvtawty9fi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fokwg3s3tnltvtawty9fi.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvoa5dsmw9154qokjb23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvoa5dsmw9154qokjb23.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What This Tool Does&lt;/strong&gt;&lt;br&gt;
You can paste a SELECT query, and it will automatically generate an ER diagram based on JOIN relationships.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
  &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;
&lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;
&lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;order_items&lt;/span&gt; &lt;span class="n"&gt;oi&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;oi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;order_id&lt;/span&gt;
&lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;products&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;oi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👇&lt;/p&gt;

&lt;p&gt;The tool analyzes JOIN conditions like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and converts them into relationships between tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Is Useful&lt;/strong&gt;&lt;br&gt;
Most existing tools (like DDL-based ER generators) require CREATE TABLE statements.&lt;/p&gt;

&lt;p&gt;However, in real-world scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You often only have SELECT queries&lt;/li&gt;
&lt;li&gt;You’re analyzing legacy systems&lt;/li&gt;
&lt;li&gt;You want to quickly understand relationships
👉 This tool works without any DDL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No installation required (runs in browser)&lt;/li&gt;
&lt;li&gt;Works with plain SELECT queries&lt;/li&gt;
&lt;li&gt;Supports multiple JOINs&lt;/li&gt;
&lt;li&gt;Handles table aliases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How It Works&lt;/strong&gt;&lt;br&gt;
The logic is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SELECT query&lt;br&gt;
 ↓&lt;br&gt;
Parse JOIN and ON clauses&lt;br&gt;
 ↓&lt;br&gt;
Extract relationships&lt;br&gt;
 ↓&lt;br&gt;
Generate ER diagram&lt;br&gt;
Specifically, it detects patterns like:&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;table1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;table2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;column&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and builds connections from them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Cases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding legacy systems&lt;/li&gt;
&lt;li&gt;SQL code reviews&lt;/li&gt;
&lt;li&gt;Learning database relationships&lt;/li&gt;
&lt;li&gt;Debugging complex queries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Try It Yourself&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="http://trancelens.com/sql2er/en/index.html" rel="noopener noreferrer"&gt;http://trancelens.com/sql2er/en/index.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste your SQL and see the structure instantly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;br&gt;
There are many tools that generate ER diagrams from CREATE statements.&lt;/p&gt;

&lt;p&gt;But generating them from SELECT queries turned out to be surprisingly useful in practice.&lt;/p&gt;

&lt;p&gt;If you deal with SQL regularly, this might save you a lot of time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feedback&lt;/strong&gt;&lt;br&gt;
I’d love to hear your fee&lt;/p&gt;

</description>
      <category>sql</category>
      <category>webdev</category>
      <category>database</category>
      <category>developer</category>
    </item>
  </channel>
</rss>
