Простые таблицы MySQL с соответствующими значениями идентификаторов в разных таблицах:
table 1;
pid, firstname
table 2;
id, pid, property, value
Допустим, в таблице 1 есть одна запись о человеке:
pid: 1
firstname: fred
Для каждого человека есть несколько записей в таблице 2:
pid: 1
property: likes cats?
value: no
pid: 1
property: eye colour
value: orange
pid: 1
property: favourite food
value: sox
Я хочу выбрать только две из множества записей таблицы два, скажем, цвет глаз и добавить записи о еде для данного идентификатора человека. Какое внешнее соединение может достичь этого?
SELECT `t1`.name
FROM `table1` AS t1
LEFT JOIN `table2` t2 ON `t1`.pid = `t2`.pid
WHERE `t1`.pid = 1
AND `t2`.property = 'eye colour'
Я застрял здесь, как получить две строки из таблицы 2 и включить также фавориты? (Пока никто не сказал, нет, я не могу изменить структуру этой базы данных).
Спасибо за чтение.