台灣最大程式設計社群網站
線上人數
1591
 
會員總數:240903
討論主題:186661
歡迎您免費加入會員
討論區列表 >> MySQL >> SQL 語法問題
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
SQL 語法問題
價值 : 50 QP  點閱數:596 回應數:3

樓主

cvbx
門外漢
0 2
44 4
發送站內信





假設我有兩個資料表 A與B
A表
--------------------
id name image
1 A1 ss.jpg
--------------------

B表
--------------------
id name X Y
1 A1 111 111
1 A2 222 222
--------------------

接下來我搜尋
select B.id , B.name , A.image , B.X ,B.Y from A, B where A.id = B.id
會跑出
-----------------------
id name image X Y
1 A1 ss.jpg 111 111
1 A2 ss.jpg 222 222
-----------------------
為什麼A2明明沒image的資料 卻不是顯示空值 而是 重複A1的image資料
該用什麼語法去篩選呢?

以上皆為假設 如語法有錯請見諒!!

拜託各位大大解惑

搜尋相關Tags的文章: [ SQL ] , [ 語法 ] ,
本篇文章發表於2017-05-28 17:37
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

彩虹
檢舉此回應
請注意這邊 where A.id = B.id ,你有注意到你的B表 id 都是 1 嗎?
(而且我不懂為什麼你B表的 id 可以重複? id是唯一值)

另外,比較好的方式你參考一下,依照你提供的資料,你要用 B.name 去跟 A.name 做串聯才對

本篇文章回覆於2017-05-28 18:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

小魚
檢舉此回應
你的兩個表的id可以用autoincrease,然後在B表加一個a_id(代表跟A表連結的id,名字自己取)
一般id是拿來當主鍵,不能重複,這樣才有辦法抓到正確的值。
通常不會拿name來做連結,因為通常兩個表的name是不一樣的(一樣的建另一個表就沒意義了)
另外建議用join的方式,如彩虹大大說的這樣
本篇文章回覆於2017-05-28 19:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

cvbx
檢舉此回應
感謝兩位
目前問題已解決^^
id是打太快打錯的
本篇文章回覆於2017-05-30 12:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.