簡體   English   中英

列名是不明確的mysql

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM