我對此有一段時間。我有3個用戶表。他們在不同的表中,因爲他們有不同的列,這取決於他們的用戶類型。搜索具有不同列的3個不同表格中的用戶
現在登錄到該網站我試圖選擇用戶的電子郵件和與他對應的所有其他值。根據其他用戶在這裏的一些反饋,我寫了我這樣的查詢:
$query = "SELECT id, position_id, first_name, last_name, email ";
$query .= "FROM pims ";
$query .= "WHERE email = '{$email}' ";
$query .= "AND hashed_password = '{$hashed_password}' ";
$query .= "AND com_code IS NULL ";
$query .= "LIMIT 1 ";
$query .= "UNION ALL SELECT id, district_id, position_id, first_name, last_name, email ";
$query .= "FROM dms ";
$query .= "WHERE email = '{$email}' ";
$query .= "AND hashed_password = '{$hashed_password}' ";
$query .= "AND com_code IS NULL ";
$query .= "LIMIT 1 ";
$query .= "UNION ALL SELECT * ";
$query .= "FROM users ";
$query .= "WHERE email = '{$email}' ";
$query .= "AND hashed_password = '{$hashed_password}' ";
$query .= "AND com_code IS NULL ";
$query .= "LIMIT 1";
但我得到一個「數據庫查詢失敗」消息。查詢工作正常,當我只有一個SELECT
聲明,所以我知道這是這個查詢不起作用。任何想法如何解決它?
做所有查詢的聯合都應該有相同數量的列。 – majidarif
這種情況下的替代方法是什麼? – Mike
添加了我的答案。 – majidarif