簡體   English   中英

在SQL中使用選擇內部聯接

[英]Using select inner join in sql

所以我有5張桌子:

dane_osobowe:
(PK) id
imie

druzyna:
(PK) id
nazwa

gracz:
(PK) id
(FK) dane_osobowe
(FK) pozycja

kontrakt:
(PK) id
(FK) gracz
(FK) druzyna

pozycja:
(PK) id
nazwa

如何從具有“ pozycja” 2的druzyna“ 1”中選擇所有“ gracz”? 我嘗試過這樣的事情:

SELECT * 
   FROM gracz AS gr 
INNER JOIN kontrakt AS kg
   ON gr.ID = kg.Gracz
INNER JOIN Druzyna AS d
   ON kg.Druzyna = d.ID
      WHERE d.ID = 1
INNER JOIN pozycja as poz
   ON poz.id = gracz.pozycja
      WHERE gracz.pozycja = 2

但這不起作用:/有人知道我在做什么錯嗎?

嘗試這個:

SELECT * 
   FROM gracz AS gr 
INNER JOIN kontrakt AS kg
   ON gr.ID = kg.Gracz
INNER JOIN Druzyna AS d
   ON kg.Druzyna = d.ID
--Remove the where condition from here       
INNER JOIN pozycja as poz
   ON poz.id = gracz.pozycja
      WHERE gracz.pozycja = 2
and d.ID = 1   --Add it over here using "and"

即,最后一起移動所有條件。

編輯:

要獲取選定的列,您可以像這樣指定它:

SELECT d.id, gr.dane_osobowe, poz.nazwa
   FROM gracz AS gr 
INNER JOIN kontrakt AS kg
   ON gr.ID = kg.Gracz
INNER JOIN Druzyna AS d
   ON kg.Druzyna = d.ID
--Remove the where condition from here       
INNER JOIN pozycja as poz
   ON poz.id = gracz.pozycja
      WHERE gracz.pozycja = 2
and d.ID = 1   --Add it over here using "and"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM