ThinkPHP 5 で検索条件、名前、時刻、携帯電話番号を使用した 3 つの結合テーブル クエリ (UNION ALL) を実装するには、次の手順に従います。
-
データベース接続情報と関連モデルが設定されていることを確認してください。
-
このメソッドを使用して、
union()
各クエリに必要な検索条件、名前、時刻、携帯電話番号を追加しながら 3 つの結合テーブル クエリを作成します。
use think\Db;
// 构建第一个查询
$query1 = Db::table('table1')
->field('column1, column2, "table1" as source')
->where('name', 'like', '%关键词%')
->where('create_time', '>', '2023-01-01')
->where('phone', 'like', '手机号%');
// 构建第二个查询
$query2 = Db::table('table2')
->field('column3, column4, "table2" as source')
->where('name', 'like', '%关键词%')
->where('create_time', '>', '2023-01-01')
->where('phone', 'like', '手机号%');
// 构建第三个查询
$query3 = Db::table('table3')
->field('column5, column6, "table3" as source')
->where('name', 'like', '%关键词%')
->where('create_time', '>', '2023-01-01')
->where('phone', 'like', '手机号%');
// 合并查询并添加UNION ALL
$unionQuery = $query1->union($query2, true) // 设置为true以保留重复记录
->union($query3, true); // 设置为true以保留重复记录
// 获取查询结果
$result = $unionQuery->select();
table1
上記のコードでは、table2
、 、table3
、および対応するフィールド、名前、時刻、携帯電話番号フィールドを実際のテーブル名とフィールド名に置き換える必要があります。キーワード关键词
を、検索したいキーワード、2023-01-01
希望の開始時間、手机号
一致させたい携帯電話番号の先頭に置き換えます。
- 最後に、
$result
変数を使用して結合テーブル クエリの結果を取得できます。
コード内のtable1
、table2
、などtable3
は実際のテーブル名に置き換える必要があり、column1
、column2
などcolumn3
はクエリする必要があるフィールド名に置き換える必要があることに注意してください。実際の状況に応じて適切な修正や調整を行ってください。