『壹』 Hibernate中不用寫sql和HQL的方式以及設置主外鍵的方式來實現多表查詢
Hibernate中的mapping,和資料庫中的主外鍵約束 沒有絕對的聯系。
即使資料庫中不設置外鍵關聯,同樣可以在hibernate中設置一對多,或者多對一,多對多的映射關系,只要你的表符合外鍵關聯的設計要求就可以。
查詢可以用HQL或者Native SQL,這個看你自己選擇。如果用HQL就必須進行Mapping。如果用原生SQL就需要你自己寫sql語句,並將查詢結果自己解析成實體類。
『貳』 sql多表查詢的問題
第一種情況查詢的目標是a表,where條件里只是從b表篩選條件,所以你那樣寫的話(b.成績)是查不出來的。
第二種情況查詢的目標是a表和b表的內連接後的結果。
插入excel的方法是:EXEC master..xp_cmdshell 'bcp 庫名.dbo.表名 out 導出文件路徑 -c -q -S"資料庫伺服器名" -U"資料庫用戶名" -P"資料庫用戶密碼"'
如果提示xp_cmdshell不能用的話,需要先在外圍應用配置器啟動這個功能
如果是查詢結果這樣寫就可以了:EXEC master..xp_cmdshell 'bcp "查詢語句" queryout 導出文件路徑 -c -q -S"資料庫伺服器名" -U"資料庫用戶名" -P"資料庫用戶密碼"'
『叄』 sql 語句多表查詢問題
--測試數據,別在正式資料庫中運行,以免刪除同名的其他表
IF NOT OBJECT_ID('會員表') IS NULL
DROP TABLE 會員表
GO
CREATE TABLE 會員表
(ID INT IDENTITY(1,1),
NAME CHAR(100),
SEX INT)
GO
INSERT INTO 會員表(NAME,SEX)
SELECT 'a',0
UNION ALL
SELECT 'b',0
UNION ALL
SELECT 'c',0
UNION ALL
SELECT'd ',1
GO
IF NOT OBJECT_ID('登陸表') IS NULL
DROP TABLE 登陸表
GO
CREATE TABLE 登陸表
(ID INT IDENTITY(1,1),
userid INT,
IP INT,
TIME DATETIME)
GO
INSERT INTO 登陸表(userid,ip,time)
SELECT '1','1','2010-05-08'
UNION ALL
SELECT '1','2','2010-05-01'
UNION ALL
SELECT '2','3','2010-05-02'
UNION ALL
SELECT '3','4','2010-05-03'
UNION ALL
SELECT '2', '5',' 2010-05-04'
GO
SELECT B.ID,CASE WHEN B.SEX=0 THEN '男'ELSE '女'END 'SEX',A.IP,A.TIME FROM 登陸表 A,會員表 B
WHERE NOT EXISTS (SELECT 1 FROM 登陸表 WHERE TIME>A.TIME AND USERID=A.USERID) AND A.USERID=B.ID
『肆』 SQL 的SELECT多表語句查詢的問題
在分組條件中,加上,業務狀態
最後添加一個 order by 業務狀態
,對以上表結果進行自聯接,篩選出想要的欄位就可以了
,詳細語句就不寫了,樓主自己寫吧。
『伍』 SQL多個表查詢的語句怎麼寫
從結果來看,你只是在表1和表2做關聯查詢,如果有多種查詢,建議你在前台程序里就分開,
比如要查卡號、姓名、幣種、金額、產品號,就使用一個sql,
需要身份證號、幣種的,就再寫一個sql,
需要匯總客戶總共的消費金額,就再另外用一個申sql,
if ..... then sql="...."
elseif ..... then sql="..."
『陸』 Sql多表查詢,怎麼做
根據你的查詢結果要求,可以根據一下幾個步驟確定多表查詢語句的寫法:
1、要顯示所有學生信息、班級、年級等信息,則需以主表1為主記錄,其他表通過外連接的方式進行關聯;
2、LEFT JOIN 關鍵字會從左表那裡返回所有的行,即使在右表中沒有匹配的行,確定主表之後,其他關聯表使用LEFT JOIN;
3、拼接SQL語句,需要確定關聯欄位主表1與表2的關聯為主表1.studentid=表2.studentid,
主表1與表3的關聯為主表1.gradId=表3.gradId,主表1與表4的關聯為主表1.classId=表4.classId
4、具體語句為:
SELECT 表1.ID, 表2.STUDENTNAME,表3.GRADNAME,表4.CLASSNAME
FROM 表1
LEFT JOIN 表2 ON 表1.STUDENTID = 表2.STUDENTID
LEFT JOIN 表3 ON 表1.GRADID = 表3.GRADID
LEFT JOIN 表4 ON 表1.CLASSID= 表4.CLASSID
『柒』 SQL如何實現多表查詢
大體上的方法有兩種
(1)聯合查詢
select dbo.vipcard.cardno,........,dbo.viptype.typename as cardtype from dbo.vipcard inner join dbo.viptype on dbo.vipcard.cardtype=dbo.viptype.ctypeid
(2)子查詢
select dbo.vipcard.cardno,........,(select typename from viptype where dbo.vipcard.cardtype=dbo.viptype.ctypeid) as cardtype from dbo.vipcard
『捌』 多表查詢,除了在SQL語句中級聯還有沒有其它方式
我給你寫一個嵌套的查詢!不用主外鍵但是要求表中的值必須是一樣的!
第一種
select xh,yw,(select xx from b) from a
where (select xh from b)=(select xh from a)
第二種
select Aa.xh,Aa.yw,Bb.xx from a as Aa,b as Bb where Aa.xh=Bb.xh
這樣寫!就是你的兩個表種根本沒有主外鍵也可以查詢!
『玖』 SQL多表查詢語句怎麼寫
SQL多表查詢語句的步驟如下:
我們需要准備的材料分別是:電腦、sql查詢器。
1、首先,打開sql查詢器,連接上相應的資料庫表,例如m1表和m2表。
『拾』 sql多表查詢為什麼不建議超過3張表
sql多表查詢不建議超過3張表,主要是因為超過3張表進行與查詢的情況下會產生巨量笛卡爾集,對於系統運算資源消耗很大,會影響資料庫運行效率,所以,不建議超過3張表的sql多表查詢。