我目前在深水区,由于缺乏知识而强调了最后期限和沮丧的原因。
所以我会寻求绝望的帮助。
这是更多的mysql问题,但由于我目前正在与WP一起使用,因此无法从wp演示场景。
我有帖子类型为“ chatt”的帖子,其中每个帖子都有其关键信息。
Metas的一个是时间戳,另一个是聊天的ID。
我需要获取所有具有给定ID的帖子(来自meta_value),并且其中timestamp值大于给定值。
我到目前为止已经做到了,但是我正在努力使它起作用:S
SELECT wp_postmeta.*,
wp_posts.*
FROM wp_postmeta
LEFT JOIN wp_posts
ON wp_posts.ID = wp_postmeta.post_id
AND wp_posts.post_type = 'chatt'
LEFT JOIN wp_postmeta t2
ON t2.meta_key = 'aw_chat_id'
AND t2.meta_value = 'test-chat-av-chattuser'
WHERE wp_postmeta.post_id = wp_posts.ID
AND t2.meta_key = 'aw_chat_timestamp'
AND t2.meta_value > 2
有谁知道如何解决这个问题?
(基本上,获取所有帖子,其中post_type = chatt AND meta_value ='test-chat-av-chattuser'AND meta_value> 2)
编辑:结构
这是wp_postmeta中的样子:
INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`)
VALUES
(2212, 1458, 'aw_chat_id', 'test-chat-av-chattuser'),
(2213, 1458, 'aw_chat_timestamp', '6'),
(2209, 1457, 'aw_chat_id', 'test-chatt'),
(2210, 1457, 'aw_chat_timestamp', '5'),
(2207, 1456, 'aw_chat_id', 'test-chatt'),
(2208, 1456, 'aw_chat_timestamp', '4'),
(2205, 1455, 'aw_chat_id', 'test-chatt'),
(2206, 1455, 'aw_chat_timestamp', '3'),
(2202, 1454, 'aw_chat_id', 'test-chatt'),
(2203, 1454, 'aw_chat_timestamp', '2'),
(2204, 1454, 'aw_chat_answer', 'adfgsdhfgsdfhsfdh'),
(2199, 1453, 'aw_chat_id', 'test-chatt'),
(2200, 1453, 'aw_chat_timestamp', '1'),
(2201, 1453, 'aw_chat_answer', 'asdfasdasdf');
meta_id post_id meta_key meta_value
2212 1458 aw_chat_id test-chat-av-chattuser
2213 1458 aw_chat_timestamp 6
2209 1457 aw_chat_id test-chatt
2210 1457 aw_chat_timestamp 5
2207 1456 aw_chat_id test-chatt
2208 1456 aw_chat_timestamp 4
2205 1455 aw_chat_id test-chatt
2206 1455 aw_chat_timestamp 3
2202 1454 aw_chat_id test-chatt
2203 1454 aw_chat_timestamp 2
2204 1454 aw_chat_answer adfgsdhfgsdfhsfdh
2199 1453 aw_chat_id test-chatt
2200 1453 aw_chat_timestamp 1
2201 1453 aw_chat_answer asdfasdasdf
这是wp_posts的样子:
INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`)
VALUES
(1458, 0, '2012-05-22 11:15:59', '0000-00-00 00:00:00', 'Chatuser chat !?', 'qwedq', '', 'draft', 'open', 'closed', '', '', '', '', '2012-05-22 11:15:59', '0000-00-00 00:00:00', '', 0, 'http://localhost/?post_type=chatt&p=1458', 0, 'chatt', '', 0),
(1457, 18, '2012-05-22 10:51:27', '2012-05-22 09:51:27', 'asdgasdgfsdfg', 'asdgfasdg', '', 'publish', 'open', 'closed', '', 'asdgfasdg', '', '', '2012-05-22 10:51:27', '2012-05-22 09:51:27', '', 0, 'http://localhost/?post_type=chatt&p=1457', 0, 'chatt', '', 0),
(1456, 1, '2012-05-22 10:48:13', '0000-00-00 00:00:00', 'sadfasdfasdfasdf', 'asdfasdfasdf', '', 'draft', 'open', 'closed', '', '', '', '', '2012-05-22 10:48:13', '0000-00-00 00:00:00', '', 0, 'http://localhost/?post_type=chatt&p=1456', 0, 'chatt', '', 0),
(1455, 1, '2012-05-22 10:38:47', '2012-05-22 09:38:47', 'ghkjhlkhkjhkj', 'jhgfjhfjh', '', 'trash', 'open', 'closed', '', 'jhgfjhfjh', '', '', '2012-05-22 10:38:47', '2012-05-22 09:38:47', '', 0, 'http://localhost/?post_type=chatt&p=1455', 0, 'chatt', '', 0),
(1454, 1, '2012-05-22 10:37:04', '2012-05-22 09:37:04', 'random text', 'awegfw', '', 'publish', 'open', 'closed', '', 'asdasd', '', '', '2012-05-22 10:37:04', '2012-05-22 09:37:04', '', 0, 'http://localhost/?post_type=chatt&p=1454', 0, 'chatt', '', 0),
(1453, 1, '2012-05-22 01:27:02', '2012-05-22 00:27:02', 'asdfasdfasdf', 'asdfasdf', '', 'publish', 'open', 'closed', '', 'asdfasdf', '', '', '2012-05-22 01:27:02', '2012-05-22 00:27:02', '', 0, 'http://localhost/?post_type=chatt&p=1453', 0, 'chatt', '', 0);
ID post_author post_date post_date_gmt post_content post_title post_excerpt post_status comment_status ping_status post_password post_name to_ping pinged post_modified post_modified_gmt post_content_filtered post_parent guid menu_order post_type post_mime_type comment_count
1458 0 2012-05-22 11:15:59 0000-00-00 00:00:00 Chatuser chat !? askwlfoef askwlfoef draft open closed 2012-05-22 11:15:59 0000-00-00 00:00:00 0 http://localhost/?post_type=chatt&p=1458 0 chatt 0
1457 18 2012-05-22 10:51:27 2012-05-22 09:51:27 asdgasdgfsdfg asdgfasdg publish open closed asdgfasdg 2012-05-22 10:51:27 2012-05-22 09:51:27 0 http://localhost/?post_type=chatt&p=1457 0 chatt 0
1456 1 2012-05-22 10:48:13 0000-00-00 00:00:00 sadfasdfasdfasdf asdfasdfasdf draft open closed 2012-05-22 10:48:13 0000-00-00 00:00:00 0 http://localhost/?post_type=chatt&p=1456 0 chatt 0
1455 1 2012-05-22 10:38:47 2012-05-22 09:38:47 ghkjhlkhkjhkj jhgfjhfjh trash open closed jhgfjhfjh 2012-05-22 10:38:47 2012-05-22 09:38:47 0 http://localhost/?post_type=chatt&p=1455 0 chatt 0
1454 1 2012-05-22 10:37:04 2012-05-22 09:37:04 asd2ewfefasdf askwlfoef askwlfoef publish open closed askwlfoef-askwlfoef 2012-05-22 10:37:04 2012-05-22 09:37:04 0 http://localhost/?post_type=chatt&p=1454 0 chatt 0
1453 1 2012-05-22 01:27:02 2012-05-22 00:27:02 asdfasdfasdf asdfasdf publish open closed asdfasdf 2012-05-22 01:27:02 2012-05-22 00:27:02 0 http://localhost/?post_type=chatt&p=1453 0 chatt 0
最佳答案
除非您希望包含NULL值,否则不需要LEFT JOIN。
根据您的最后一句话和评论:
SELECT chat.*,
timestamp.*,
wp_posts.*
FROM wp_posts
INNER JOIN wp_postmeta chat
ON wp_posts.ID = chat.post_id
AND chat.meta_key = 'aw_chat_id'
INNER JOIN wp_postmeta timestamp
ON wp_posts.ID = timestamp.post_id
AND timestamp.meta_key = 'aw_chat_timestamp'
WHERE wp_posts.post_type = 'chatt'
AND timestamp.meta_value > 2
AND chat.meta_value = 'test-chat-av-chattuser'