MySQL -查询一个临时表,从表中检索2行


MySQL - Query a temp table to retrieve 2 rows from table

感谢您花时间阅读我的问题。

我试图从2个表的数据组合在这样一种方式,它可以在一个网页上与PHP呈现-我使用WordPress网站,所以表结构可能看起来很熟悉。

表格布局:

wp_3bpf9a_posts -该表为每个"帖子"有1行,我需要这个表,以便我可以查询特定类型的帖子,并获得日期。

wp_3bpf9a_postmeta -每个帖子都有许多记录的表(有一个ID将两者连接在一起)。我实际上需要从2(许多)行数据为每个ID完成显示的数据集,我正在寻找。

我试图通过创建一个临时表来实现这一点,将两个表之间的第一个记录连接在一起,然后我将返回并将临时表连接到我需要的第二个记录。实际上,我使用Toad连接到MySQL DB,当我按顺序一次运行下面的每个语句时,下面的代码可以正常工作。当我尝试运行整个事情,我没有得到一个错误,但也没有得到任何结果,同样当我尝试它在我的PHP页面。我知道可能有更简单的方法来做到这一点,但这是我从简单的MySQL查询中迈出的第一步。任何指导,你可以提供将不胜感激,谢谢!

DROP TABLE IF EXISTS bookingTempTable;
CREATE TEMPORARY TABLE bookingTempTable AS
SELECT ID, post_title, post_name, meta_value
FROM  `wp_3bpf9a_posts` 
    INNER JOIN `wp_3bpf9a_postmeta` ON `wp_3bpf9a_postmeta`.`post_id`=`wp_3bpf9a_posts`.`ID` 
    WHERE  `post_type` LIKE  'booked_appointments' AND `post_title` LIKE '%October 9%' AND `wp_3bpf9a_postmeta`.`meta_key` LIKE 'slot_members';
SELECT *
FROM `wp_3bpf9a_postmeta`
    INNER JOIN `bookingTempTable` ON `bookingTempTable`.`ID`=`wp_3bpf9a_postmeta`.`post_id` 
    WHERE `wp_3bpf9a_postmeta`.`meta_key` LIKE '_appointment_timeslot'
    ORDER by `wp_3bpf9a_postmeta`.`meta_value` ASC;

不需要临时表,只需与wp_sbpf9a_postmeta连接两次即可。

SELECT p.*, m1.meta_value AS slot_member, m2.meta_value AS appointment_timeslot
FROM wp_sbpf9a_posts AS p
JOIN wp_3bpf9a_postmeta AS m1 ON p.id = m1.post_id
JOIN wp_sbpf9a_postmeta AS m2 ON p.id = m2.post_id
WHERE p.post_type = 'booked_appointments'
    AND p.post_title LIKE '%October 9%'
    AND m1.meta_key = 'slot_members'
    AND m2.meta_key = '_appointment_timeslot'
ORDER BY appointment_timeslot