Ваш последний комментарий на ваш вопрос об использовании JOIN
проясняет мне (я думаю), что вы ищете.JOIN
s определенно вам здесь очень поможет, вместо довольно громоздкого запроса, который вы сейчас используете.
Попробуйте:
SELECT
tbl_main.date,
tblA.value AS title,
tblB.value AS alt
FROM
tbl_main
INNER JOIN (SELECT main_id, tag_id, value
FROM tbl_scd
INNER JOIN tbl_tag ON (tbl_scd.tag_id = tbl_tag.id)
WHERE tbl_tag.name = 'title') tblA
ON (tbl_main.id = tblA.main_id)
INNER JOIN (SELECT main_id, tag_id, value
FROM tbl_scd
INNER JOIN tbl_tag ON (tbl_scd.tag_id = tbl_tag.id)
WHERE tbl_tag.name = 'alt') tblB
ON (tbl_main.id = tblB.main_id);
Я думаю, это поможет вам стать ближек общему решению того, на что, похоже, вы пытаетесь достичь, или, по крайней мере, укажете правильное направление с помощью JOIN
s.
Я также думаю, что вы могли бы выиграть от переосмысления дизайна вашей базы данныхпотому что этот вид поворота строк из одной таблицы в столбцы в выходных данных запроса может быть индикатором того, что данные могут быть лучше структурированы по-разному.
В любом случае, я надеюсь, это поможет.