1樓:網友
select * from (select linkt from t1 where key = a')
where 其它限制條件。
這句其實沒有語法錯誤。是個巢狀查詢 。
但是卻得不到你想要的結果。
select * from 這裡可以是表名,檢視,也可以是記錄集。
而(select linkt from t1 where key = a') 這返回的是一個記錄集。
所以是可以查詢。
而你想要的結果。貌似不太可能實現的了。而且說句實話,我不是很明白為什麼要把資料庫寫成這個樣子,建議你改的更合理些。
2樓:匿名使用者
select * from t2 where * from t1 where 'a')
不知道是不是你說的意思。
3樓:
沒除錯,試試看能不能達到你說的目的。
select *
from(case
select linkt from t1 where 'a')
when 't2'
then (select * from t2)elsethen (select * from t3)end)建議重新設計資料庫結構,個人認為此類查詢過於無理。
4樓:匿名使用者
select a.* b.* from t1 a,t2 b where
判斷一個如果t2表為空在查詢t3表裡試一下。
sql查詢問題
5樓:匿名使用者
這樣的問題,說明你平時不學。基礎書上都有,最簡單的select from where ,如果不會,問老師能更直接些。基礎的東西要吃透。
關於sql查詢的問題
6樓:哎呀
一、你的**。
select a.* from test1 a,test2 b
將被系統看作是這樣的一個查詢:
從表a中取出第1條記錄,與表b中的所有的記錄組合並列出來。
再從表a中取出第2條記錄,與表b中的所有的記錄組合並列出來。
再從表a中取出第3條記錄,與表b中的所有的記錄組合並列出來。
再從表a中取出第最後1條記錄,與表b中的所有的記錄組合並列出來。
二、現在,你的情況是b表中沒有資料,所以有:
從表a中取出第1條記錄,與表b中的所有的記錄組合並列出來。因為b表為空,所以列不出。
再從表a中取出第2條記錄,與表b中的所有的記錄組合並列出來。因為b表為空,所以列不出。
再從表a中取出第3條記錄,與表b中的所有的記錄組合並列出來。因為b表為空,所以列不出。
再從表a中取出第最後1條記錄,與表b中的所有的記錄組合並列出來。因為b表為空,所以列不出。
結果就是,一條記錄也沒有列出來!
三、我這樣說你明白了嗎?你還可以在b表中追加1條記錄,再試著執行你的語句,再追至有2條記錄後,再試,你就會更明白了。
四、一般而言,多數情況下,你的語句應該是類似漿紫的:
select a.* from test1 a,test2 b where
更標準的寫法是:
select a.* from test1 a join test2 b on
7樓:
逗號是cross join的意思,就是所謂的笛卡爾集。
行數=a*b
8樓:唐城冬
你這語句複製全了嗎?怎麼沒有這兩個表的連線語句啊,如果表b沒有資料想顯示的話,就用左連線表a在左邊。
sql巢狀查詢問題,SQL巢狀查詢問題
select distinct jno from spj where jno not in select t1.jno from select from select distinct pno from spj where sno s1 a,select distinct jno from spj ...
sql查詢語句的問題,sql查詢語句問題?
日期欄位存的是日期型別 2020 03 25 還是時間型別 2020 03 25 12 03 01 如果是後者,那查詢時需要帶上時間點 日期 2020 03 25 and 日期 2020 03 25 23 59 59 前面不帶時間的預設是2020 03 25 00 00 00,後面帶時間的包含了25...
sql查詢問題,sql語句的問題?
定位字串中 取子串,轉為整數,儲存在一個記憶體表中。執行動態了。sql語句的問題?在sql server中兩者沒有區別,但在oracle的sql語句中,delete from是不標準的語法,執行無法通過。oracle下執行delete from語句 成功 oracle下執行delete from語句...