Php 数据表-嵌套选择';标准普尔;加入
我正在使用datatables.net,但我正在努力解决如何让嵌套查询和联接工作。我似乎找不到任何例子。我可以让它使用如下方式显示简单查询(对于不同的表): 但现在,我有了这个问题,我看不到任何东西可以为我指明正确的方向:Php 数据表-嵌套选择';标准普尔;加入,php,mysql,datatables,Php,Mysql,Datatables,我正在使用datatables.net,但我正在努力解决如何让嵌套查询和联接工作。我似乎找不到任何例子。我可以让它使用如下方式显示简单查询(对于不同的表): 但现在,我有了这个问题,我看不到任何东西可以为我指明正确的方向: SELECT vp.id, vp.post_title, ( SELECT vpm.meta_value FROM
SELECT
vp.id,
vp.post_title,
(
SELECT
vpm.meta_value
FROM
vhyky_postmeta vpm
WHERE vp.id = vpm.post_id
AND vpm.meta_key = 'cs_cause_goal_amount'
) AS Bonus,
(
SELECT
vpm.meta_value
FROM
vhyky_postmeta vpm
WHERE vp.id = vpm.post_id
AND vpm.meta_key = 'cs_cause_raised_amount'
) AS Deposit,
wt.name,
vp.post_content
FROM
vhyky_posts vp,
vhyky_postmeta vpm,
vhyky_term_relationships wtr,
vhyky_term_taxonomy wtt,
vhyky_terms wt
WHERE vp.post_type = 'cs_cause'
AND vp.post_status = 'publish'
AND vp.id = vpm.post_id
AND vp.id = wtr.object_id
AND wtr.term_taxonomy_id = wtt.term_taxonomy_id
AND wt.term_id = wtt.term_id
AND wtt.term_id = '114'
group by vp.id
我将尝试以这种方式创建您的查询。因为我不知道数据库表是如何设置的,所以除了编辑一些语法外,我无法为您提供更多帮助
SELECT
vp.id,
vp.post_title,
bonus.meta_value,
deposit.meta_value,
wt.name,
vp.post_content
FROM
vhyky_posts vp,
vhyky_term_relationships wtr,
vhyky_term_taxonomy wtt,
vhyky_terms wt
LEFT JOIN
(SELECT
vpm.post_id, vpm.meta_value
FROM
vhyky_postmeta vpm
WHERE
vpm.meta_key = 'cs_cause_goal_amount'
) AS bonus ON bonus.post_id = vp.id
LEFT JOIN
(SELECT
vpm.post_id, vpm.meta_value
FROM
vhyky_postmeta vpm
WHERE
vpm.meta_key = 'cs_cause_raised_amount'
) AS deposit ON deposit.post_id = vp.id
WHERE
vp.post_type = 'cs_cause'
AND vp.post_status = 'publish'
AND vp.id = wtr.object_id
AND wtr.term_taxonomy_id = wtt.term_taxonomy_id
AND wt.term_id = wtt.term_id
AND wtt.term_id = '114'
GROUP BY vp.id
我将尝试以这种方式创建您的查询。因为我不知道数据库表是如何设置的,所以除了编辑一些语法外,我无法为您提供更多帮助
SELECT
vp.id,
vp.post_title,
bonus.meta_value,
deposit.meta_value,
wt.name,
vp.post_content
FROM
vhyky_posts vp,
vhyky_term_relationships wtr,
vhyky_term_taxonomy wtt,
vhyky_terms wt
LEFT JOIN
(SELECT
vpm.post_id, vpm.meta_value
FROM
vhyky_postmeta vpm
WHERE
vpm.meta_key = 'cs_cause_goal_amount'
) AS bonus ON bonus.post_id = vp.id
LEFT JOIN
(SELECT
vpm.post_id, vpm.meta_value
FROM
vhyky_postmeta vpm
WHERE
vpm.meta_key = 'cs_cause_raised_amount'
) AS deposit ON deposit.post_id = vp.id
WHERE
vp.post_type = 'cs_cause'
AND vp.post_status = 'publish'
AND vp.id = wtr.object_id
AND wtr.term_taxonomy_id = wtt.term_taxonomy_id
AND wt.term_id = wtt.term_id
AND wtt.term_id = '114'
GROUP BY vp.id
我将创建一个类似于视图的表(类似于SQL视图,而不是MVC视图):在一个新表中组装所有需要的列。每次用户要求显示数据时,您都可以使用一个PHP脚本清空和填充表。然后,使用DataTables进行查询会更容易(特别是在需要过滤器的情况下)。我会创建一个类似视图的表(类似SQL视图,而不是MVC视图):将所有需要的列组装到一个新表中。每次用户要求显示数据时,您都可以使用一个PHP脚本清空和填充表。然后,使用数据表进行查询会更容易(特别是在需要过滤器的情况下)