Skip to content

Commit 8ed4b1a

Browse files
author
Eric Bus
committed
Wrong query for fetching foreign keys. The relations were the other way around.
1 parent 750db97 commit 8ed4b1a

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

src/Schema.php

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -335,25 +335,25 @@ protected function findForeignKeys($table)
335335
$columnsTableName = $this->quoteTableName($columnsTableName);
336336

337337
$sql = <<<SQL
338-
SELECT pt4.column_name AS "fk_column_name", ft2.table_name AS "uq_table_name", ft4.column_name AS "uq_column_name"
338+
SELECT pc.column_name AS "uq_column_name", pt.table_name AS "uq_table_name", fc.column_name AS "fk_column_name"
339339
FROM {$fkeyTableName} AS t1
340-
INNER JOIN {$tablesTableName} AS pt2
341-
ON pt2.table_id = t1.primary_table_id
342-
INNER JOIN {$indexTableName} AS pt3
343-
ON pt3.table_id = t1.primary_table_id
344-
AND pt3.index_id = t1.primary_index_id
345-
INNER JOIN {$columnsTableName} AS pt4
346-
ON pt4.table_id = t1.primary_table_id
347-
AND pt4.column_id = pt3.column_id
348-
INNER JOIN {$tablesTableName} AS ft2
349-
ON ft2.table_id = t1.foreign_table_id
350-
INNER JOIN {$indexTableName} AS ft3
351-
ON ft3.table_id = t1.foreign_table_id
352-
AND ft3.index_id = t1.foreign_index_id
353-
INNER JOIN {$columnsTableName} AS ft4
354-
ON ft4.table_id = t1.foreign_table_id
355-
AND ft4.column_id = pt3.column_id
356-
WHERE pt2.table_name = :tableName
340+
INNER JOIN {$tablesTableName} AS pt
341+
ON pt.table_id = t1.primary_table_id
342+
INNER JOIN {$indexTableName} AS pi
343+
ON pi.table_id = t1.primary_table_id
344+
AND pi.index_id = t1.primary_index_id
345+
INNER JOIN {$columnsTableName} AS pc
346+
ON pc.table_id = t1.primary_table_id
347+
AND pc.column_id = pi.column_id
348+
INNER JOIN {$tablesTableName} AS ft
349+
ON ft.table_id = t1.foreign_table_id
350+
INNER JOIN {$indexTableName} AS fi
351+
ON fi.table_id = t1.foreign_table_id
352+
AND fi.index_id = t1.foreign_index_id
353+
INNER JOIN {$columnsTableName} AS fc
354+
ON fc.table_id = t1.foreign_table_id
355+
AND fc.column_id = fi.column_id
356+
WHERE ft.table_name = :tableName
357357
SQL;
358358

359359
$rows = $this->db->createCommand($sql, [

0 commit comments

Comments
 (0)