私は3つのテーブルを手に入れました:
- wp_posts
- wp_metadata
- ユーザー
「 wp_posts 」からクエリを取得するとき、左結合を使用して「 wp_metadata 」からデータを取得していますが、3番目のテーブル「 users 」から値を取得するにはどうすればよいですか?
例: wordpressblog に 1 つの投稿があります。その投稿には、いくつかのメタフィールドがあります。そのうちの 1 つは「userid」と呼ばれます。私のユーザーはワードプレスの外のテーブルにあります。ポストメタキー「userid 」が「 users 」テーブルの行 IDと等しいテーブル「 users 」からユーザーのユーザー名を取得するにはどうすればよいですか?
現在の私のSQLリクエストは次のとおりです。
SELECT ID, post_title,
post_excerpt,
post_content,
m.meta_value AS placeid,
i.meta_value AS photoid,
r.meta_value AS rating,
u.meta_value AS userid,
b.username
FROM wp_posts p
LEFT JOIN wp_postmeta m ON (m.post_id = p.ID)
LEFT JOIN wp_postmeta i ON (i.post_id = p.ID)
LEFT JOIN wp_postmeta r ON (r.post_id = p.ID)
JOIN wp_postmeta u ON (u.post_id = p.ID)
LEFT JOIN brugere b ON (b.id = userid)
WHERE m.meta_key = 'placeid'
AND i.meta_key = 'photoid'
AND r.meta_key = 'rating'
AND u.meta_key = 'userid'
AND post_status = 'publish'
ORDER BY ID DESC LIMIT 50;
「 print json_encode 」でクエリを使用しているため、1つのクエリが必要です。