2010-11-08 74 views
0
"select full_name from user u join user_contact_info ui on ui.user_id=u.user_id, 
    ui.user_contact_state, ui.user_contact_city_town, ui.user_contact_country where 
    u.full_name like '"+keyWord+"%'" + "and u.user_id = "+id; 

從我的用戶u表我想要全名和從我的user_contact_info表我想要 州和城市和國家。這是MySQL的查詢正確還是錯誤?

我在寫連接查詢來獲取所有基於id的值。我想知道是否 正確寫入查詢。如果錯了我該怎麼寫呢。請幫我寫連接查詢。

此外,在結果集如何,如果我使用的是單個表 我會寫我的RS作爲

if(rs.next()){ 
    User user = new User(); 
    user.setFullname(rs.get(full_name); 
    } 

在使用第二連接表如何的情況下獲取和設置的值,以獲得值我的對象。

+4

您已經測試過的查詢?它會給你正確的答案嗎?通過所有軟件開發,您需要知道您希望代碼執行哪些操作並能夠對其進行測試。如果它是正確的,你通常不能通過查看一段代碼來判斷。測試用例至關重要。 – 2010-11-08 17:11:03

+0

@Cam我測試它不產生價值。 – 2010-11-08 17:28:35

回答

1
"select u.full_name, ui.user_contact_state, ui.user_contact_city_town, ui.user_contact_country 
from user u 
left outer join user_contact_info ui on ui.user_id=u.user_id 
where u.full_name like '"+keyWord+"%'" + "and u.user_id = "+id 

注意:您可能不需要你的WHERE子句中的full_name比較,因爲我認爲user_id是每個用戶唯一的,因此,會得到正確的記錄。下面

查詢應該是所有您需要:

"select u.full_name, ui.user_contact_state, ui.user_contact_city_town, ui.user_contact_country 
from user u 
left outer join user_contact_info ui on ui.user_id=u.user_id 
where u.user_id = "+id 
+0

我想根據關鍵字的全名。當我使用關鍵字進行搜索時。所以我加了full_name like關鍵字 – 2010-11-08 17:30:31