Hi all! Please, help me!
How I construct this query with xpdo?
SELECT `msDiscountCard`.`id`,
`msDiscountCard`.`uid`,
`msDiscountCard`.`public`,
`msDiscountCard`.`discount_id`,
`msDiscountCard`.`amount`,
`msDiscountCard`.`amount_used`
FROM `modx_ms2_discount_card` AS `msDiscountCard`
LEFT JOIN (
SELECT `msDiscountCardMember`.`discount_card_id`,
`msDiscountCardMember`.`user_id`,
`msDiscountCardMember`.`owner_type`
FROM `modx_ms2_discount_card_members` AS `msDiscountCardMember`
WHERE `msDiscountCardMember`.`owner_type` = 'owner'
) AS `msDiscountCardMember`
ON `msDiscountCardMember`.`discount_card_id` = `msDiscountCard`.`id`
Yes, I seen this article -
http://web.archive.org/web/20120310104826/http://lazylegs.info/articles/subqueries-in-modx-revolution-using-xpdo/subqueries-in-modx-revolution-inside-join.html (original page returned 404, so link to the 'web archive' page), but it didn't help me :-(
I tried in this way:
$query = $modx->newQuery('msDiscountCard');
$subquery = $modx->newQuery('msDiscountCardMember');
$subquery->select('msDiscountCardMember.*');
$subquery->where(array(
'msDiscountCardMember.owner_type' => 'owner'
));
$query->select('msDiscountCard.*, msDiscountCardMember.*');
$query->leftJoin('msDiscountCardMember', 'msDiscountCardMember', 'msDiscountCard.id = msDiscountCardMember.discount_card_id', $subquery);
$cards = $modx->getIterator('msDiscountCard', $query);
But I get only this incomplete query;
SELECT msDiscountCard.*,
msDiscountCardMember.*
FROM `modx_ms2_discount_card` AS `msDiscountCard`
LEFT JOIN `modx_ms2_discount_card_members` `msDiscountCardMember`
ON msDiscountCard.id = msDiscountCardMember.discount_card_id
[ed. note: aloshka last edited this post 10 years, 9 months ago.]