0

オプションと製品の 2 つのテーブルがあります。options.id がいずれかの製品列に存在する場合にのみ、オプションからすべてを選択したい。これは私の2つのテーブルです:

オプション表:

id        option         value

1       'kategorija'    'Muški'
2       'kategorija'    'Ženski'
3       'kategorija'    'Dječji'
4       'brand'         'Casio'
5       'brand'         'Lorus'
6       'brand'         'Seiko'
7       'brand'         'Citizen'
8       'mehanizam'     'Quartz'
9       'mehanizam'     'Automatik'
10      'mehanizam'     'Eco-Drive'
11      'brojcanik'     'Analogni'
12      'brojcanik'     'Digitalni'
13      'grupa'         'Satovi'
14      'grupa'         'Naocale'

および 2 番目のテーブル製品:

 id     grupa   brand    mehanizam  brojcanik   kategorija  

10380   '13'     '4'        '8'        '11'         '2'
10560   '13'     '4'        '9'        '12'         '1'
11100   '13'     '6'        '8'        '11'         '2'
12380   '14'     '7'        '8'        '11'         '2'
12490   '13'     '6'        '9'        '11'         '1'
15720   '14'     '6'        '9'        '12'         '1'
16550   '14'     '5'        '8'        '12'         '3'

クエリの私の試み:

SELECT * FROM options WHERE EXISTS( SELECT 1 FROM products WHERE grupa="14" AND brand=options.id OR mehanizam=options.id OR brojcanik=options.id OR kategorija=options.id)

結果は次のようになります。

Array
(
    [0] => Array
        (
            [id] => 14
            [option] => grupa
            [value] => Naocale
        )

    [1] => Array
        (
            [id] => 7
            [option] => brand
            [value] => Citizen
        )

    [2] => Array
        (
            [id] => 8
            [option] => mehanizam
            [value] => Quartz
        )

    [3] => Array
        (
            [id] => 11
            [option] => brojcanik
            [value] => Analogni
        )

    [4] => Array
        (
            [id] => 2
            [option] => kategorija
            [value] => Zenski
        )
)

これは、製品 ID 12380 (グループ 14) の 1 行のみの配列です。製品行にグループ 14 がある残りの製品についても配列を続ける必要があります。これがmysqlクエリでのみ可能かどうかはわかりません。それが不可能な場合は、回避しようとしているphpと比較する必要があります。

ありがとう

4

2 に答える 2