0
我試圖創建一個查詢,目前跨越三個表尋找各種ID的,但我需要知道什麼表的ID來自。MySQL PDO UNION查詢,發現表的結果來自
$searchQuery = 'LS7 2UP';
$stmt = $db->prepare("
SELECT id as 'nameSearchID' FROM user WHERE recordStatus=1 AND CONCAT(forename, ' ', surname) LIKE :nameSearch
UNION ALL
SELECT clientID AS 'salesOrderClientID' FROM salesOrder WHERE recordStatus=1 AND salesOrderID LIKE :salesOrderID
UNION ALL
SELECT id AS 'addressID' FROM address WHERE recordStatus=1 AND postcode LIKE :searchPostcode
");
$stmt->bindValue(':nameSearch', "%$searchQuery%", PDO::PARAM_STR);
$stmt->bindValue(':salesOrderID', "%$searchQuery%", PDO::PARAM_STR);
$stmt->bindValue(':searchPostcode', "%$searchQuery%", PDO::PARAM_STR);
$stmt->execute();
$rowCount = $stmt->rowCount();
$resultsOrig = $stmt->fetchAll(PDO::FETCH_ASSOC);
此輸出2分的結果,其它是從地址表發現,但它示出從「用戶」表來。
任何想法?
Array
(
[0] => Array
(
[nameSearchID] => 69e17996-93be-4562-ad55-49ac62801bba
)
[1] => Array
(
[nameSearchID] => 135e4e26-869d-44cc-b400-383e884923ea
)
)
定了! $語句= $ DB->準備從用戶WHERE RECORDSTATUS = 1 AND CONCAT(用名字, '(」 選擇 '用戶' 作爲用戶,ID',姓)LIKE:nameSearch UNION ALL 選擇 'salesOrder' 作爲salesOrder ,從salesOrder的clientID WHERE recordStatus = 1 AND salesOrderID LIKE:salesOrderID union all select'address'as address,id from address WHERE recordStatus = 1 AND postcode LIKE:searchPostcode 「); –