Задать вопрос
@djon198360

Получение данных из двух таблиц MySQL одним запросом?

Есть две таблицы
ingridient_val и ingridient_name
ingridient_val имеет такую архитектуру id`, `news_id`, `id_ingrid`, `val`
ingridient_name `id`, `name`, `alt_name`
нужно по ид новости получить все строки из ingridient_val а после из полученных данных по всем id_ingrid из ingridient_name по id получить столбцы name и alt_name
потом соединить и вывести . Может не очень понятно написал попробую объяснить проще что мне нужно .

В ingridient_val хранятся ингредиенты их несколько строк id_ingrid в каждой строке соответствует id в таблице ingridient_name id мне нужно вначале получить все ингредиенты из ingridient_val а потом по id_ingrid из ingridient_name получить поля name и alt_name соответствующие каждому id_ingrid и вывести строкой каждый ингредиент .
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
SELECT  v.id, v.news_id, v.val, n.name, n.alt_name
FROM ingridient_val v
LEFT JOIN ingridient_name n ON (n.id=v.id_ingrid)
WHERE v.news_id=285
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@djon198360 Автор вопроса
пытался так
$db->query ( "SELECT dle_ingridient_val.news_id,dle_ingridient_val.id_ingrid, dle_ingridient_val.val,dle_ingridient_val.text, dle_ingridient_name.id, dle_ingridient_name.name FROM dle_ingridient_val, dle_ingridient_name WHERE dle_ingridient_val.news_id={$row['id']} AND dle_ingridient_name.id = '14,7' ");

но тогда на выходе
Array
(
[news_id] => 285
[id_ingrid] => 12
[val] => 1
[text] => штука
[id] => 14
[name] => Соль
)
Array
(
[news_id] => 285
[id_ingrid] => 19
[val] => по
[text] => вкусу
[id] => 14
[name] => Соль
)
только название первого ингредиента
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы