1

次のテーブルがあります。

http://www.gulllakeschools.net/mysqltables.pdf

ここに画像の説明を入力

この形式でデータを引き出す必要があります: 学生の姓、学生の名、date_event、date_event (学生がログインした日ごとに 1 つの日付イベントがあります)

コンポーネント com_users は、コンポーネント列から取得する必要があるコンポーネントです。

私は mysql の初心者で、一度にすべてを行う方法がわかりません。個別に正常に機能する次の select ステートメントがあります。

SELECT civicrm_contact.last_name, civicrm_contact.first_name, civicrm_uf_match.uf_id
FROM civicrm_contact, civicrm_uf_match
WHERE civicrm_contact.id = civicrm_uf_match.contact_id

SELECT user_id, component, group_concat( date_event )
FROM jos_content_statistics
WHERE component = "com_users"
GROUP BY user_id

しかし、私は一生、彼らを参加させることはできません。結合、結合、完全結合、結合を試みましたが、すべてエラーが発生しました。whereステートメントの前後に結合を試みました。Union は照合エラーを生成します。私はそれを理解できないので、内部結合を試していません。

4

3 に答える 3

1
SELECT C.last_name, C.first_name, S.date_event
FROM civicrm_contact as C
INNER JOIN civicrm_uf_match as M on M.contact_id = C.id 
INNER JOIN jos_content_statistics as S on M.uf_id = S.user_id
于 2012-10-09T11:04:47.227 に答える
0
SELECT 
  civicrm_contact.last_name, 
  civicrm_contact.first_name, 
  civicrm_uf_match.uf_id,
  (select group_concat(jos_content_statistics.date_event) 
   from jos_content_statistics 
   where user_id = civicrm_uf_match.uf_id 
     and civicrm_uf_match.contact_id = civicrm_contact.id 
     and component = "com_users" 
   GROUP BY user_id) as date_events
FROM civicrm_contact join civicrm_uf_match
on civicrm_contact.id = civicrm_uf_match.contact_id
where civicrm_contact.contact_sub_type='student' 
于 2012-10-09T10:57:09.100 に答える
0

これを試して:

SELECT cc.last_name, cc.first_name, cm.uf_id, jc.component, jc.dateevent 
FROM civicrm_contact cc
INNER JOIN civicrm_uf_match cm ON cc.civicrm_contact.id = cm.contact_id
INNER JOIN
(
    SELECT user_id, component, group_concat( date_event ) dateevent
    FROM jos_content_statistics
    WHERE component = "com_users"
    GROUP BY user_id, component
) jc ON cm.uf_id = jc.user_id
于 2012-10-09T10:57:22.577 に答える