Вернуть 2 столбца, используя подзапросы в основном запросе в MySQL - PullRequest
1 голос
/ 14 октября 2011

Я хочу заполнить таблицу в базе данных mysql.Во-первых, я хотел бы отбросить все возможности, и они обрезали ненужные (проще, чем просто добавить их вручную).

Финальный стол:

комбинаций

combID
productID
type
content
exclude
extrafield2
extrafield6

Данные поступают из

extrafields_values ​​

exvalueID
productID
extrafieldID
content

Для каждого продукта мне нужно получить строку возврата для каждой комбинации в extra_field_values ​​(extrafieldID = 2 и extrafieldID = 6)

Например:

  • productID = 700
  • extrafield2 = E, D, F
  • extrafield6 = 34,35,36,37

Возвращает exvalueID в extrafields2 и 6 для каждой комбинации

Пока я пробовал:

SELECT EV.productID, extraFieldID, content AS extrafield6, 
    (SELECT  content AS extrafield2 
     FROM wjf_extrafields_values AS EV2
         INNER JOIN wjf_products AS P2
     WHERE extraFieldID = 6) AS extrafield2 
FROM wjf_extrafields_values AS EV 
    INNER JOIN wjf_products AS P ON P.productID = EV.productID 
WHERE extrafieldID = 6

Ответы [ 2 ]

1 голос
/ 14 октября 2011

Полагаю, вам просто нужно связать свою таблицу wjf_products с таблицей extrafield_values дважды, как показано ниже.

select p.productID, ev1.content as extrafield2, ev2.content as extrafield6
from wjf_products p inner join extrafields_values ev1 on p.productID = ev1.productID
inner join extrafields_values ev2 on p.productID = ev2.productID
where ev1.extraFieldID = 2
and ev2.extraFieldID = 6
0 голосов
/ 14 октября 2011

Почему бы просто не создать и использовать два представления вместо запроса.

Вид1 = Комбинации

View2 = Подмножество View1

Вставка данных с использованием View2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...