プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

【WordPress】自作テーブルをINNER JOINし任意のデータを取ってくる

はじめに

前回、phpMyAdminでWordPressのデータが入っているテーブルに新たにテーブルを追加し、SQLでデータを取得した。
【WordPress】自作テーブルを追加してデータ管理をしてみる

復習

[php] <?php
$results = $wpdb->get_results("
 SELECT
  name
 FROM
  $wpdb->items
 ");

foreach ($results as $value) {
print(‘<li>’.$value->name.'</li>’);
}

?>
[/php]

INNER JOINを使い複数テーブルを内部結合する

$wpdbの箇所以外は単純なSQL。
[php] <?php
$results = $wpdb->get_results("
SELECT *
FROM $wpdb->table_a
INNER JOIN $wpdb->table_b
ON $wpdb->table_a.code = $wpdb->table_b.code
WHERE $wpdb->table_b.type = 2
");
foreach ($results as $value) {
print(‘<li>「’.$value->name."」".$value->code.'</li>’);
}
?>
[/php]

上記ではtable_aとtable_bのコードをJOINし、table_bのタイプが2のものをSELECTする。
同じSQLを簡略化すると以下のようにも書くことができる

[php] <?php
$results = $wpdb->get_results("
SELECT *
FROM $wpdb->table_a
INNER JOIN $wpdb->table_b b
USING(code)
WHERE b.type = 2
");
foreach ($results as $value) {
print(‘<li>「’.$value->name."」".$value->code.'</li>’);
}
?>
[/php]
USING(○○)
…JOINするテーブルのカラムが共通の名前の場合に使用できる

テーブル名 AS 略名
…エイリアス名をつけ長いテーブル名を簡略化できる。
ASは省略可。