問:(左(外)連線)左連線查詢主資料一定能查詢到資料嗎?
答:一定能?
答案是錯誤的,現在想想好傻,如果一定能查詢到資料,連表查詢條件有什麼作用呢?
以下有兩張表做了測試:
user 表,裡面有兩條資料,
活動表action,裡面有一條資料:
select
*,action.`id` as action_id
from
`users` left join action on users.`id`=action.`id`
limit 0, 1000 ;
能查到資料,儘管action 的資料為空:
加上使用者表的id=3,action是沒有改條資料的,也是能查詢到資料:
如果把action.`id`=2作為條件,儘管action能查詢到資料可是users主表沒有資料,所以無法查詢到資料:
綜上:我們可以得到:
1、如果主表作為條件【或者沒有條件】有資料並且被連線表不作為條件,不管被連線是否有資料都能查詢到有資料。
2、如果被連線表作為查詢條件能查詢該錶資料(無法查詢資料),如果主表無法查詢到資料的話,則不會查詢到資料。
話外:
如果是right join(右(外)連線) 的話!結果相反。
(
select
*,action.`id` as action_id
from
`users` right join action on users.`id`=action.`id`
limit 0, 1000 ;)
如果是inner join(等值連線)的話!需要兩個條件都成立才能查詢到資料
select
*,action.`id` as action_id
from
`users`
inner join action
on users.`id` = action.`id`
limit 0, 1000 ;
今天用solrj遇到了乙個問題,關於日期的
從solrdocument.get item signingdate 取出值 這個是時間型別,但是用util date sql。date 都無法轉成date型別,這樣就需要轉成string 這樣用到了 dateformat format new dateformat eee mmm dd hh mm...
今天遇到乙個亂碼問題
用ecplise自動生成的servlet,會自動帶有這麼一句話 他被放在了 request.setcharacterencoding utf 8 response.setcharacterencoding utf 8 的前面,然後 的時候 request.getrequestdispatcher i...
今天遇到乙個奇怪的問題
想實現乙個使用者訪問頁面,得到使用者的外網位址 在公司上。程式是沒問題。正常獲取使用者的位址 測試 哪位遇到這樣的問題過。如下 string ip request.getheader x forwarded for if ip null ip.length 0 unknown equalsignor...