3

メンバーをExpressionEngineからWordPressに移動する必要があります。これまでのところ、Stackoverflowで次のクエリを使用して支援を受けてきました。このクエリはうまく機能し、696の結果(正しいメンバー数)を生成します。ただし、別のテーブルからいくつかの列もエクスポートする必要があり、それらをクエリに追加すると、484416の結果(696 x 696)が得られます。

696件の結果を返す元のクエリは次のとおりです。

SELECT username AS user_login, 
username AS user_nicename, 
email AS user_email, 
url AS user_url, 
screen_name AS display_name, 
FROM_UNIXTIME(join_date) AS user_registered
FROM exp_members

これが私がやりたいことです。これはNavicatのクエリビルダーでやろうとしました。テーブルm_field_id_1から呼び出された列を取得し、として返します。このクエリは484416の結果を生成します。exp_member_datauser_location

SELECT exp_members.username AS user_login, 
exp_members.username AS user_nicename, 
exp_members.email AS user_email, 
exp_members.url AS user_url, 
exp_members.screen_name AS display_name, 
FROM_UNIXTIME(join_date) AS user_registered, 
exp_member_data.m_field_id_1 AS user_location // here is the m_field_id_1
FROM exp_members, exp_member_data

これらの2つのテーブルを適切に組み合わせて、返される結果が696個だけで、列が追加されるようにするにはどうすればよいですか?ありがとう

4

1 に答える 1

2

テーブル間に条件が必要です。そうJOINでない場合は、2つのデカルト積を取得します(table1のすべての行にtable2のすべての行を掛けたもの、この場合は696 ^ 2)。

SELECT
  exp_members.username AS user_login, 
  exp_members.username AS user_nicename, 
  exp_members.email AS user_email, 
  exp_members.url AS user_url, 
  exp_members.screen_name AS display_name, 
  FROM_UNIXTIME(join_date) AS user_registered, 
  exp_member_data.m_field_id_1 AS user_location
FROM
  exp_members
  JOIN exp_member_data 
    /* ON clause specifies the relation between the two tables */
    ON exp_members.username = exp_member_data.username

上記は、にマップするがexp_member_data呼び出された列があることを前提としています。代わりに、それらの間にid列がある場合は、代わりに次のように使用します。usernameexp_member.username

  JOIN exp_member_data ON exp_members.member_id = exp_member_data.member_id
于 2012-04-19T01:57:45.557 に答える