我有两个表格,选项和产品。我想从选项中选择全部,但只有在任何产品列中都存在options.id时才可以。这是我的两个表:Mysql查询,两个表。仅当其他表中存在值时才选择
选项表:
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'
和第二台产品:
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的一行,即grupa 14.数组应该继续用于产品行中存在grupa 14的其余产品。 我不知道这是否只能用mysql查询。如果这是不可能的,我将不得不做与php比较,这是我试图避免的。
感谢
为什么选择:'5','8','3','6','9','1'不包括在内? –
不包括在哪里?在数组中? – user2499170
被删除的答案对我来说工作得很好。不知道为什么被删除。 – user2499170