2017-06-13 28 views
-1

我有兩個表格: - PERSONDATA。我想要做的是從PERSON表中只提取DATA表中的所有詳細信息,並且僅當PERSON.personId = DATA.personId時表中有兩列。加入一張表的所有列和第二列表的幾列

我使用這個查詢: -

SELECT * 
FROM PERSON AND SELECT DATA.value, DATA.field 
FROM DATA where PERSON.personId = DATA.personId; 

但我認爲這是錯誤的語法。任何人都可以告訴我什麼是正確的語法。

+0

我想你需要看看MySQL [手冊](https://dev.mysql.com/doc/refman/5.7/en/join.html)。尋找'JOIN'的語法。這裏也有很多例子。 –

+0

請隨時與任何入門書籍或教程,然後回到我們與您可能有任何問題。 – Strawberry

+0

如果這個問題已經解決,那麼請考慮接受一個答案(不一定是我的)。謝謝。 –

回答

0

SELECT PERSON.column1,PERSON.column2,PERSON.columnN,DATA.value FROM PERSON INNER JOIN DATA ON PERSON.PERSONID = DATA.personId

1

像這樣:

select 
     P.*, 
     D.value, 
     D.field 
    from Person P 
    join Data D on P.PersonID = D.PersonID 

將P. *更改爲您需要的特定列,但P. *將從Person表中獲取所有內容。

檢查這個帖子出來LEFT JOIN vs. LEFT OUTER JOIN in SQL Server瞭解JOINS,圖中是很好的瞭解不同的人做

0

它真的很容易,只要執行這個查詢:

SELECT 
    PERSON.*, 
    DATA.value, 
    DATA.field 
FROM 
    PERSON INNER JOIN DATA USING (`personId`); 

它選擇的所有領域來自DATA的PERSON +值和字段。 另外它使用personId來加入這兩個表。

填寫自由詢問您是否需要更多信息。

0

您可以使用連接(LEFT JOIN)

SELECT * FROM PERSON LEFT JOIN DATA ON PERSON.personId = DATA.personId 

希望它會幫助你

0
SELECT p.*,d.column1,d.column2 
    FROM Person p 
    JOIN Data d 
     ON p.personId = d.personId 
WHERE <Condition> 

在此查詢人與所有的列和數據與你的願望列,您可以通過此查詢取。

相關問題