sql >> データベース >  >> RDS >> Mysql

mysqlテーブルでタグを検索するためのより良い方法

    アイテムAがアイテムBの多くに関連付けられ、アイテムBがアイテムAの多くに関連付けられる場合。これは多対多の関係

    これらの関係を持つデータは別のテーブルに保存し、クエリでのみ結合する必要があります。

    Examble

    表1

    | product_uid | price | amount |
    |      1      | 12000 |  3000  |
    |      2      | 30000 |   600  |
    

    表2

    | tag_uid | tag_value |
    |    1    |   tag_01  |
    |    2    |   tag_02  |
    |    3    |   tag_03  |
    |    4    |   tag_04  |
    

    次に、結合テーブルを使用してそれらを関連付けます

    表3

    | entry_uid | product_uid | tag_uid |
    |    1      |     1       |     3   |
    |    2      |     1       |     4   |
    |    3      |     2       |     1   |
    |    4      |     2       |     2   |
    |    5      |     4       |     2   |
    

    クエリは次のようになります(アイテム1とタグを選択する場合)

    SELECT t1.*, t2.tag_value 
    FROM Table1 as t1,
    JOIN Table3 as join_table ON t1.product_uid = join_table.product_uid
    JOIN Table2 as t2 ON t2.tag_uid = join_table.tag_uid
    WHERE t1.product_uid = 1
    


    1. MySQLエラーコード:1005

    2. java.sql.SQLException:ユーザー'root' @'localhost'のアクセスが拒否されました(パスワードを使用:YES)

    3. 内部結合からmysqlテーブルを作成する

    4. geminstallpgはlibpqにバインドできません