MySQL выбрать одно поле из таблицы, где условие находится в нескольких строках - PullRequest
3 голосов
/ 30 декабря 2010

Пытался найти ответ, но все равно не смог .. Таблица выглядит следующим образом:

id, keyword,   value
1   display    15.6
1   harddrive  320
1   ram        3

Так что мне нужно что-то вроде этого .. Выберите идентификатор из этой таблицы, где (keyword="display" and value="15.6") AND (keyword="harddrive" and value="320") Также возможно, что будет 3 или 4 таких условия ключевого слова, которые должны привести к возвращению одного идентификатора (одной строки)не могу понять

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

Это проблема реляционного деления .Это должно сделать что-то вроде следующего:

SELECT id
FROM your_table
WHERE 
(keyword="display" and value="15.6") OR (keyword="harddrive" and value="320")
GROUP BY id
HAVING COUNT(*) = 2

Я предполагаю, что ваша таблица имеет соответствующие ограничения, так что невозможно полностью дублировать строку.(например, есть ПК на id, keyword)

0 голосов
/ 02 октября 2013
SELECT DISTINCT id FROM table
WHERE 
(keyword="display" and value=15.6) OR (keyword="harddrive" and value=320)
...