1

関連するすべての質問を読みましたが、この単純なことを機能させることができませんでした。このクエリの結果を連結したいと思います。

SELECT DISTINCT ord.uid AS u
  FROM  `uc_order_products` ord_prod,  `uc_orders` ord,  `uc_roles_expirations` re
WHERE ord.order_id = ord_prod.order_id
  AND ord_prod.title LIKE  '2012. évi%'
  AND ord.uid NOT 
IN (SELECT uid FROM uc_roles_expirations re)

次のようになります。

U
----
1234
1235
...

これは私が試したものです:

SELECT GROUP_CONCAT(DISTINCT ord.uid AS u
  FROM  `uc_order_products` ord_prod,  `uc_orders` ord,  `uc_roles_expirations` re
WHERE ord.order_id = ord_prod.order_id
  AND ord_prod.title LIKE  '2012. évi%'
  AND ord.uid NOT 
IN (SELECT uid FROM uc_roles_expirations re) SEPARATOR ',')

..そして動作しませんでした。私たちを手伝ってくれますか?

4

2 に答える 2

2

columnNameのみをGROUP_CONCAT関数に含める必要があります。

SELECT GROUP_CONCAT(DISTINCT ord.uid SEPARATOR ',')AS u
FROM  `uc_order_products` ord_prod,  
        `uc_orders` ord,  
        `uc_roles_expirations` re
WHERE ord.order_id = ord_prod.order_id
  AND ord_prod.title LIKE  '2012. évi%'
  AND ord.uid NOT 
IN (SELECT uid FROM uc_roles_expirations re)

PS:補足として、このテーブルには結合条件がないため、このuqeryはデカルト結果を生成しますuc_roles_expirations。他のテーブルのテーブルの関係は何ですか?

よくわかりませんが、このクエリの結果が必要だと思います。

SELECT GROUP_CONCAT(DISTINCT ord.uid SEPARATOR ',')AS u
FROM  `uc_order_products` ord_prod
       INNER JOIN `uc_orders` ord
          ON ord.order_id = ord_prod.order_id
WHERE ord_prod.title LIKE  '2012. évi%' AND 
      ord.uid NOT IN (SELECT uid FROM uc_roles_expirations)
于 2013-01-31T13:32:56.410 に答える
1
select GROUP_CONCAT(u ORDER BY u)
from
(
SELECT DISTINCT ord.uid AS u
  FROM  `uc_order_products` ord_prod,  `uc_orders` ord,  `uc_roles_expirations` re
WHERE ord.order_id = ord_prod.order_id
  AND ord_prod.title LIKE  '2012. évi%'
  AND ord.uid NOT 
IN (SELECT uid FROM uc_roles_expirations re)
) t
于 2013-01-31T13:36:40.767 に答える