1

table_Y で、異なる数のタイトルを保持し、table_X にある marital_status によってグループ化されている顧客の総数を見つけようとしています。それらに参加するための一意のキーがないため、参加できません。私は永遠にかかる次のmySQLスクリプトを書いています。これを書く良い方法はありますか?ありがとう:

 SELECT COUNT(DISTINCT customer_id), marital_status FROM table_X
    WHERE customer_id IN (
    SELECT COUNT(DISTINCT customer_id)
    FROM
    (
    SELECT customer_id,COUNT(DISTINCT title) 
    FROM table_Y
    GROUP BY customer_id 
    HAVING COUNT(DISTINCT title)=1
    ORDER BY customer_id) as t1)
    GROUP BY marital_status;
4

1 に答える 1

0
  1. WHERE customer_id IN ( SELECT COUNT(DISTINCT customer_id) .... customer_idクエリが機能しているように見えても、主にビジネス関連の値とは何の関係もないため、目的の結果が返されないことはほぼ確実です。

  2. 両方のテーブルにcustomer_idおそらく同じことを表す列が含まれているため、結合を実行できるようです。

    SELECT customer_id,COUNT(DISTINCT title) FROM table_Y ty INNER JOIN table_x tx ON tx.customer_id = ty.customer_id HAVING COUNT(DISTINCT ty.title)=1 GROUP BY marital_status ORDER BY tx.customer_id

于 2013-07-15T19:49:53.963 に答える