0

この場合、どのようにジョイントを行うことができるか知りたいです:

というTable_ref名前のテーブルがあります。これには、データベース内のすべてのテーブルの名前が含まれており、構造は次のとおりです。

-----------------------------------------------
| Field       | Type        | Null   | Key    |
-----------------------------------------------
| tbl_name    | varchar(45) |  NO    | PRI    |
| tbl_type    | Tinyint(3)  |  NO    | MUL    |
-----------------------------------------------

A1B1A2、 ...のような名前を持つ他の 14 個のテーブルとB2、同じ構造を持つ :

-----------------------------------------------
| Field       | Type        | Null   | Key    |
-----------------------------------------------
| id          | int(10)     |  NO    | PRI    |
| itime       | int(10)     |  YES   | MUL    |
| dtime       | int(10)     |  YES   | MUL    |
| src         | varchar(40) |  YES   |        |
| dstname     | varchar(255)|  YES   |        |
-----------------------------------------------

src='192.168.1.2'問題は、すべてのテーブルからどこから情報を抽出するためにどのようにジョイントを行うことができるかです。

4

1 に答える 1

0

これは、すべてのテーブルの結合構造です

-----------------------------------------------
| Field       | Type        | Null   | Key    |
-----------------------------------------------
| id          | int(10)     |  NO    | PRI    |
| itime       | int(10)     |  YES   | MUL    |
| dtime       | int(10)     |  YES   | MUL    |
| src         | varchar(40) |  YES   |        |
| dstname     | varchar(255)|  YES   |        |
| type        | Tinyint(3)  |  NO    | MUL    |
-----------------------------------------------

そして、単純なクエリで情報を抽出できるようになりました

SELECT
    *
FROM mytable
WHERE src = '192.168.1.2'   

すべてのタイプからレコードをフェッチします。特定のタイプの情報が必要な場合は、別の where 条件を追加するだけです

SELECT
    *
FROM mytable
WHERE src = '192.168.1.2'   
AND type = 1
于 2013-04-26T09:21:35.867 に答える