我有兩個不同的表,一個是匹配,另一個是玩家,我試圖運行子查詢,返回name
(從players
表)和matchno
(從matches
)。我可以讓它返回一個或另一個,但不是兩個。MySql Subquerying 2表
也有一些我的查詢返回錯誤(在工作臺6.0)
錯誤代碼:1242子查詢返回多個1行
具有諷刺意味的是我的命=)
我的邏輯就是嘗試使用規範化,即playerno
。
即:
select name
from players
where playerno in
(select matchno
from matches
group by matchno)
這將返回剛剛從球員表的名稱。我對MySql相當陌生,已經沖刷了我的書和互聯網,並且仍然將我的頭撞在牆上,任何幫助都將不勝感激!在此先感謝
我發現,工作用加入了查詢和子查詢:
select m.matchno, p.name
from (matches as m inner join players as p
on m.playerno = p.playerno)
您應該只看到更新的查詢錯誤。要排除故障,請自行運行子查詢,以便查看返回的內容。決定你想要的行,並寫出必要的代碼來獲得它。 –
實際上,如果在子查詢之前有等號,你也會在選擇查詢中看到這個錯誤。如果您使用關鍵字「in」,按照您的示例,您不應該看到它。如果你是,用特定的SQL編輯你的問題,拋出錯誤。 –