[英]column name is ambiguous mysql
我花了幾個小時試圖從不同的表中選擇所有行,但仍然沒有運氣。 我正進入(狀態:
column name firstname is ambiguous
這些表沒有任何關系,我只想選擇所有行,因為我需要查詢來搜索所有表以查找匹配的字符串。 我有搜索欄。
有沒有更好的方法可以從多個表中選擇列號不匹配的所有行。 我已經嘗試了UNION ALL
但它給了我一個錯誤。 請幫忙
$mydb = new mysqli('localhost', 'root', '', 'db');
$stmt = $mydb->prepare("SELECT * FROM `table1` t1 JOIN `table2` t2 ON joinitem.t1 = joinitem.t2 where firstname = ? ");
stmt->bind_param('s', $firstname);
echo $mydb->error;
$stmt->execute();
嘗試在WHERE
子句中具體說明,例如
SELECT * FROM `table1` t1
JOIN `table2` t2 ON t1.joinitem = t2.joinitem
WHERE t1.firstname = ?
該錯誤來,因為你有列firstname
都你的表所示。 如果不指定您的firstname
,SQL不會告訴您是要基於table1的名字還是基於table2的名字。
為確保SQL知道您的意思,請在列名前添加表名。
另外,我相信JOIN
條件應該是tablename.joinitem
而不是joinitem.tablename
。
這是一個示例,假設您想要的firstname
來自table2
:
SELECT *
FROM `table1` t1
JOIN `table2` t2 ON t1.joinitem = t2.joinitem
WHERE t2.firstname = ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.