『壹』 求助 sql一對多,多表關聯查詢
你好!
你這個發貨單表和出庫主表的關聯之後就出問題了!
並不是一一對應的關系!
這個可能是表設計的時候就有問題!或者說,發貨單表的單號是不是也要跟出庫主表的單號有關聯!
但是你的數據是錯的,導致不能直接關聯!
歡迎追問!
請您採納!
『貳』 mysql 一對多的多表聯查問題
sql查詢出來的不會默認顯示null的,這個要程序來
"select * from a,b where a.id=b.id and group by pid";
不知道這個是不是你要的
『叄』 求解,兩張表連接,是一對多的數據顯示,要怎麼寫Sql語句
最好把表結構提供一下。
1、以「表名一」為基準,將「表名多」中「欄位」相同的行查出,「表名一」中有而「表名多」中不存在的就不顯示:
select 要查詢的欄位 from 表名一,表名二 where 表名一.欄位=表名多.欄位
2、以「表名一」為基準,將「表名多」中「欄位」相同的行查出,「表名一」中有的就都顯示,「表名多」中沒有的會顯示為「NULL」
select 要查詢的欄位 from 表名一
left outer join 表名多 on ( 表名一.欄位=表名多.欄位)
『肆』 SQL 一對多表關聯查詢
補充:
....這個,感覺樓主的語句不用寫成這樣詭異的,你可以試試下面的語句符不符合你的要求
select * from table1 a,table 2 b where a.name=b.name;
這樣不就行了么??
可以給多一點信息么??具體你想返回什麼呢??
是這樣么?
table1符合的記錄欄位 table1所對應的很多table2
的中的一個記錄 欄位
** ++++++
** ++++++
** ++++++
** ++++++
如果是這樣的話,table2應該是存儲有關交易的信息的吧,那麼應該有一個唯一標識的編號,類型為數值,越新的記錄,編號越大,設這個編號為id 那麼可以用以下方法,達到你想要的效果
select * from table1,table2 where table2.id in (
select max(id) from table2 group by name) and table1.name
=table2.name;
強烈建議不要使用日期欄位作唯一標識,如果沒有以上所說的id列,會麻煩許多
『伍』 一對多sql聯合查詢:
select t1.id,t1.name,min(t2.type) from t1 left join t2 on t1.id=t2.pid group by t1.id,t1.name
不知道你要取的單條是靠哪個條件選擇的,暫時取最小
『陸』 一對多三表關聯匯總SQL問題
可以把b表和c表先去重
select
a.id,
a.name,
sum(b.value) value,
sum(c.value) value2
from A a
left join (select id,value from B group by id,value) b on a.id=b.aid
left join (select id,value from C group by id,value) c on a.id=c.aid
group by a.id,a.name
『柒』 資料庫一對多、連接表問題
樓主這種,是多對多的關系,我一般是這么處理的。
學生表 (一個主鍵 學生ID)
課程表 (一個主鍵 課程ID)
學生選課表
主鍵為2個欄位 學生ID、課程ID
同時建立外鍵約束
學生選課表中的 學生ID,必須在學生表中存在。
學生選課表中的 課程ID、必須在課程表中存在。
因為 一個學生,選一門課程,是唯一的了。 可以作為主鍵了。
沒有必要再去折騰一個 「選課ID」 作為主鍵。 然後再給 學生ID 與 課程ID 創建個唯一性的索引。
--
除非是這種情況:
這個 中間的 選課表, 還包含 時間信息的欄位.
例如 學生 張三
2010年 選修 Oracle 資料庫課程
2011年,又選修 Oracle 資料庫課程
2012年,還選修 Oracle 資料庫課程
那麼,這種情況下, 可以設置 一個由資料庫管理的 自增的 "選課ID" 來確保唯一性。
『捌』 sql server中視圖left join 一對多,右表怎麼取數據之和
直接在SQL中是沒法這么個結構出來的,需要配合編程語言實現
1、先查詢出用戶列表,然後循環用戶列表,再根據用戶跟作品表的關聯查詢到每個用戶的作品信息
2、分別查詢出用戶表和作品表中的所有數據,再根據用戶和作品的關聯欄位進行數據的組合
『玖』 sql如何一對多聯合查詢
sql 語句是這樣寫:
sql="select time,content,b.classname from record a left join class b on a.class_id=b.id"
下面是在ASP頁面用來顯示的:(創建那個與數據連接的對象不用寫了吧)
<TABLE>
<%
set rs=conn.execute(sql) 執行上面的語句
do while not rs.eof
%>
<TR>
<TD><%=rs("time")%></TD>
<TD><%=rs("content")%></TD>
<TD><%=rs("classname ")%></TD>
</TR>
<%
rs.movenext
loop
%>
</TABLE>
如果你是oracle中:
select 人名,sum(sale) from (select a.id,a.sale,b.人名 from s a,p b where a.who=b.id(+)) group by 人名
在sql 和access:
select 人名,sum(sale) from (select a.id,a.sale,b.人名 from s a left join p b on a.who=b.id(+)) group by 人名
其中 a,b 是表s,表p的別名
『拾』 sql中表連接中的列 一對多(有相同主鍵)怎麼連接
select x.a,min(y.b) b from x inner join y on x.a=y.a group by x.a
select y.a,min(y.b) b from y group by y.a