2017-01-27 5 views
1

私はLAMPを使用していて、phpMyAdminでMySQlを維持しています。私はInnoDBテーブルのマルチテーブルクエリを作成するたびにJOINをタイプするのがうんざりです。MySQL phpMyAdmin外部キーからJOINを構築する

誰かが外部キーからJOIN文を生成するためのプラグイン、アプローチ、またはリソースを知っていますか?

答えて

0

私はすべての外部キーからJOINステートメントを構築するクエリを書くことになった:

CREATE VIEW Joins_All AS 
SELECT 
    concat(" JOIN ",TABLE_NAME," ON ", 
    TABLE_NAME,".",COLUMN_NAME," = ", 
    REFERENCED_TABLE_NAME,".", REFERENCED_COLUMN_NAME) 
    AS myJoin 
    FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
    WHERE REFERENCED_TABLE_NAME IS NOT NULL 

UNION 

SELECT 
    concat(" JOIN ",REFERENCED_TABLE_NAME," ON ", 
    TABLE_NAME,".",COLUMN_NAME," = ", 
    REFERENCED_TABLE_NAME,".", REFERENCED_COLUMN_NAME) 
    AS myJoin 
    FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
    WHERE REFERENCED_TABLE_NAME IS NOT NULL 

ORDER BY myJoin ASC 

それはこのようなものを生成:Area_Tare.Id_Area = Area.Id_Area

上の領域を登録しよう

JOIN Area_Tare ON Area_Tare.Id_Area = Area.Id_Area

JOIN Insect O N Insect.Id_Insect_Class = Insect_Class.Id_Insect_Class

昆虫ON Insect_Insumo_Formula_Ingredient.Id_Insect = Insect.Id_Insect

私はこのファイルとコピー/私はそれらを必要とqhen適切な行を貼り付けたり、私はビューをフィルタリングを保存

を登録しよう目的のテーブルの名前

これは、外部キーに基づいてGUIクエリービルダーを作成するために、これを(これは私がこの時点で行うことはありません)PHPで簡単に行うことができます。そうすることに決めた人は、このコードを自由に使ってください。

+0

さらに、where句では、テーブルをフィルタリングして必要な関係のみを取得することができます。 :) –