Помогите разобраться с leftJoin и where

День добрый. Пытаюсь сделать выборку товаров, имеющих в опции ps_type определенные значения.
Есть список товаров:
Товар 1; Административный, Подвесной
Товар 2; Административный, Промышленный, Подвесной
Товар 3; Промышленный, Подвесной
Нужно выбрать 1 и 2.
Делаю это через leftJoin и where:
[[!msProducts?
    &parents=`2`
    &leftJoin=`{
		"ps_type": {
			"class": "msProductOption",
			"on": "ps_type.key = 'ps_type' AND ps_type.product_id = msProduct.id"
		}
	}`
    &where=`{"ps_type.value:LIKE": "Подвесной", "AND:ps_type.value:LIKE": "Административный"}`
]]
Результатов у данной выборки нет.
Я не слишком хорошо знаком с механизмами SQL, но глядя на это условие, у меня возникает ощущение, что я пытаюсь найти строки в которых значение ps_type одновременно равно и «Подвесной», и «Административный», что, закономерно, ни к чему не приводит. Насколько я понимаю, мне нужно разносить значения, между которыми должно быть условие AND в разные опции? Или я неправильно понимаю?
Александр
12 ноября 2015, 13:43
modx.pro
2
3 428
+1

Комментарии: 8

Сергей Шлоков
12 ноября 2015, 18:44
+3
А так?
[[!msProducts?
    &parents=`2`
    &join=`{
		"ps_type1": {
			"class": "msProductOption",
			"on": "ps_type1.key = 'ps_type' AND ps_type1.product_id = msProduct.id AND ps_type1.value LIKE 'Подвесной'"
		},
		"ps_type2": {
			"class": "msProductOption",
			"on": "ps_type2.key = 'ps_type' AND ps_type2.product_id = msProduct.id AND ps_type2.value LIKE 'Административный'"
		}
	}`

]]
    Александр
    12 ноября 2015, 22:15
    0
    Да, спасибо огромное, так работает, только
    &innerJoin
Fi1osof
12 ноября 2015, 19:03
0
Товар 1; Административный, Подвесной
Товар 2; Административный, Промышленный, Подвесной
Товар 3; Промышленный, Подвесной
У вас в msProductOption в value прописано сразу типа «Административный, Промышленный, Подвесной» одним значением, или три отдельных строчки «Административный», «Промышленный», «Подвесной» (то есть три строки на один товар)?
    Александр
    12 ноября 2015, 22:13
    0
    Три отдельных значения.
      Fi1osof
      13 ноября 2015, 09:09
      +4
      Подробно ответил здесь.
        Александр
        13 ноября 2015, 13:35
        0
        Огромное спасибо за столь подробную информацию.
          Fi1osof
          13 ноября 2015, 14:12
          0
          Всегда пожалуйста!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    8