をクリーンアップする必要がヤオールねえ、私は、クエリの恐ろしい混乱を持って、誰もがそれを見て、私はそれをクリーンアップする方法の任意の提案をお知らせできればと思いまして。それは動作しますが、あまりにも多くのレコードがそこにあるとゆっくり実行されます。これは2つのテーブルのみを含みますが、問合せは基本的にproblem_nodes表の行から値を取り出し、最終結果の列に変換します。ひどくフォーマットされたSQLクエリは、
SELECT *
FROM (SELECT urgency,
name,
phone,
location,
department,
cc,
status,
case_manager,
ip,
case_manager_ei d,
id_problem,
id_problem_type,
eid_author,
title,
body,
date_created,
date_modified
FROM problems AS main
INNER JOIN (SELECT id_problem as t_urgency_id_problem,
node_value AS urgency
FROM problem_nodes
WHERE node_name = "urgency")t_urgency
ON t_urgency.t_urgency_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_name_id_problem,
node_value AS name
FROM problem_nodes
WHERE node_name = "name")t_name
ON t_name.t_name_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_phone_id_problem,
node_value AS phone
FROM problem_nodes
WHERE node_name = "phone")t_phone
ON t_phone.t_phone_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_location_id_problem,
node_value AS location
FROM problem_nodes
WHERE node_name = "location")t_location
ON t_location.t_location_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_department_id_problem,
node_value AS department
FROM problem_nodes
WHERE node_name = "department")t_department
ON t_department.t_department_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_cc_id_problem,
node_value AS cc
FROM problem_nodes
WHERE node_name = "cc")t_cc
ON t_cc.t_cc_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_status_id_problem,
node_value AS status
FROM problem_nodes
WHERE node_name = "status")t_status
ON t_status.t_status_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_case_manager_id_problem,
node_value AS case_manager
FROM problem_nodes
WHERE node_name = "case_manager")t_case_manager
ON t_case_manager.t_case_manager_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_ip_id_problem,
node_value AS ip
FROM problem_nodes
WHERE node_name = "ip")t_ip
ON t_ip.t_ip_id_problem = main.id_problem
INNER JOIN (SELECT id_problem as t_case_manager_eid_id_problem,
node_value AS case_manager_eid
FROM problem_nodes
WHERE node_name = "case_manager_eid")
t_case_manager_eid
ON t_case_manager_eid.t_case_manager_eid_id_problem =
main.id_problem)t
データを取得する。このパターンは、私には少し外国人なので、任意の助けいただければ幸いです。
私は(それがどのように見えるか)あなたの問題は、フォーマットではないと思うが、それは_does_と_how_何でそれはそれをしません。 – Oded
実装ピボットの奇妙な方法.... –
そしてまた、それは一つの問題のために、それはすべての問題のノードを持つことを前提とし、私はいつもケースのthatsを不思議に思う....しかし、インナーがクエリに参加することは同じことを示唆して....そして、 al –