2017-12-06 6 views
0

私はjavafx TableViewにデータを入れるためにWordpressテーブルを使用します。 WP dbでは私は2つのテーブルwp_posts & wp_postmetaを持っており、ID(wp_postmetaのpost_id)でテーブルをJOINし、wp_postmeta(すべてではない)から特定の行を選択する必要があります。2テーブルを結合して特定の行を選択

例: wp_postmeta構造体post_id、meta_key、meta_value。 meta_keyには、_yoast_wpseo_title、._yoast_wpseo_metadesc、._yoast_wpseo_focuskeywordsの3行があります。 と、この行の値はmeta_value列から必要です。

マイコード:持ち運びにくいの行があるため、列が_yoast_wpseo_title

ResultSet rs = connection.createStatement().executeQuery(" SELECT wp_postmeta._yoast_wpseo_title, wp_postmeta._yoast_wpseo_metadesc, wp_postmeta._yoast_wpseo_focuskeywords, wp_posts.post_title, wp_posts.post_name FROM wp_postmeta INNER JOIN wp_posts ON wp_posts.ID = wp_postmeta.post_id "); 

そしてもちろん、私は受信エラー、_yoast_wpseo_metadesc、見つからない_yoast_wpseo_focuskeywords。

どうすればいいですか? (私はjava9、javafx、mysql jdbcを使用します)。あるいは、PreparedStatementを使用する必要がありますか?

スクリーンショット: enter image description here

答えて

1

あなたはmeta_keyフィールドの内容に基づいてクエリをフィルタ処理したいので、あなたがWHERE句を使用します。

SELECT wp_postmeta.meta_key, wp_postmeta.meta_value, wp_posts.post_title 
    FROM wp_postmeta INNER JOIN wp_posts ON wp_posts.ID = wp_postmeta.post_id 
    WHERE wp_postmeta.meta_key IN ('_yoast_wpseo_title', '_yoast_wpseo_metadesc', '_yoast_wpseo_focuskeywords') 

あなたはメタキーのリストを提供していますあなたは一致したい。これにより、各投稿に対して(最大)3行が表示されます。

投稿ごとに1つの行だけが必要な場合は、状況がより複雑になります(おそらく問題になるわけではありません)。 GROUP BY post_idを使用してAggregate functionsを調べることができます。

+0

ありがとうございました!私はこのコードを試します) –

関連する問題