2016-10-20 10 views
0

2つの条件がある複数のテーブルからすべてを選択しようとしています。複数のテーブルを選択してすべての結果を返す

しかし、彼らはここで第二のテーブルから、代わりにすべて

の単一の結果を戻すためのMySQLコード

SELECT * 
    FROM `core_users`.`users` 
    LEFT JOIN `core`.`orders` 
     ON `core_users`.`users`.`uid` = `core`.`orders`.`uid` 
    LEFT JOIN `core_users`.`crm` 
     ON `core_users`.`users`.`uid` = `core_users`.`crm`.`uid` 
    WHERE (`core_users`.`users`.`signup_timestamp` BETWEEN '1476626400' AND '1476712800' 
    OR (`core_users`.`crm`.`type` = 'refresh_5in5' AND `core_users`.`crm`.`value` BETWEEN '1476626400' AND '1476712800')) 

これはただのCRM表から裏1件の結果をもたらしています。しかし、私はそれがcrmテーブルからすべての結果を返すことを望みます。両方のテーブルにWHERE句を持ちながら

は、どのように私は戻ってすべてusersordersから持参し、crmのですか?

+1

お手伝いします。お手伝いをしてください。テーブルの構造、サンプルデータ、そしてそのサンプルのために入手しようとしている結果を共有してください。 – Mureinik

+0

WHEREに合った結果が複数あることは確かですか? – krasipenkov

答えて

0

あなたはすべてのテーブルにidのようにこれらのテーブルのいずれにも共通の列を持っている場合、このような場合には、それはあいまいな列名エラーを引き起こす、ということに注意してくださいselect users.*, orders.*, crm.*

を試してみてください。これを取り除くには、エイリアス名users.id as user_idorders.id as order_idcrm.id as crm_idなどで指定する必要があります。

+0

これは、各ユーザーに対して1行だけ戻します。すべてのテーブルのすべてではありません。私はそれが起こるWHERE節を思います。 – waz

+0

質問のサンプルデータと期待される出力を追加すると、迅速な回答が得られます。 –

関連する問題