2 つのテーブルの列を出力するクエリを作成しようとしています。たぶん結合しようとしていましたが、左または右のテーブルで結合すると、値が返されない場合があります。UNION キーワードを使用することを考えましたが、列の名前が 1 つの名前に変更されます。それでは、どの列に何があるかわかりません。
クエリで両方のテーブルの列を選択したいのですが、どちらのテーブルにも一致するユーザー名が存在するかどうかは気にしません。とにかく、値を持たないすべての列がそこにあることを望んでいます。
SELECT *
FROM client_table
JOIN staff_table
ON client_table.username = staff_table.username
WHERE client_table.username = " . mysql_real_escape_string($gotMyUser) . "
OR staff_table " . mysql_real_escape_string($gotMyUser) . " LIMIT 1
アップデート:
ここにクエリの出力があります
Array
(
//FIRST TABLE
[client_id] => 332058
[username] => jake
[firstname] => jake
[lastname] => ****
[email] => *****
[phone] =>
[phone_ext] =>
[mobile] =>
[department] =>
[is_active] => 1
[default_site] => 0
[google] =>
//SECOND TABLE
[staff_id] =>
[group_id] =>
[dept_id] =>
[passwd] =>
[signature] =>
[isactive] =>
[isadmin] =>
[isvisible] =>
[onvacation] =>
[daylight_saving] =>
[append_signature] =>
[change_passwd] =>
[timezone_offset] =>
[max_page_size] =>
[auto_refresh_rate] =>
[created] =>
[lastlogin] =>
[updated] =>
)
ユーザーがスタッフIDまたはクライアントIDのいずれかを持っているかどうかを知りたいのですが、どちらの結合(LEFT RIGHTまたはFULL)に応じて、結果が返されない可能性があるため、これはまさに私が望むものです。クエリを実行してからテストするたびに、結果にこれらすべての列が含まれるようにします。
if($array['client_id']){
//do stuff with client
}
else if($array['staff_id']){
//do stuff with staff
}