2017-08-02 77 views
-2

我有兩個表,我想連接在一起,第二個表的id與第一個表的id匹配,並作爲行一起輸出。如何加入2個表格?

第一張桌子是「男孩」,並有一列「id」和「名字」。
第二張表是「女孩」,並有一列「id」和「名字」。

如何在PHP中輸出時將匹配ID作爲單行連接?我經歷了一個關於連接的基本SQL教程,並且出於某種原因無法繞過邏輯。任何幫助?

$result = mysql_query(" 
SELECT * 
FROM boys 
LEFT JOIN girls 
WHERE boys.id = girls.id 
"); 

警告:mysql_fetch_array()預計參數1是資源,布爾在C中給出:\ XAMPP \ htdocs中\ XAMPP \上線main3.php 28

+0

@Virb'mysql_'不需要連接變量來執行querys。 – Twinfriends

+0

我知道,但我想確保它在PHP中輸出正確。我正在我的XAMPP本地主機上測試所有這些。 – Steven

回答

0

其中加入你想。如果你更喜歡內部聯接那就試試這個

SELECT Orders.OrderID, Customers.CustomerName 
FROM Orders 
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID; 

左加入

SELECT Customers.CustomerName, Orders.OrderID 
FROM Customers 
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID 
ORDER BY Customers.CustomerName; 

和右連接

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName 
FROM Orders 
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID 
ORDER BY Orders.OrderID; 
+0

您可以添加一些細節,以瞭解這些連接之間的區別是什麼? OP正在努力理解 –

+0

你可以用我的表/列名將它翻譯成代碼嗎? – Steven

+0

(內連接):返回有兩個表 LEFT(外)加入匹配值的記錄:從返回左表中的所有記錄,以及來自右表 RIGHT(外)匹配的記錄JOIN:返回從所有記錄右表和來自左表的匹配記錄謝謝 –

0

您只需提供您的查詢,這是相當薄的工作。

根據你的錯誤,你給mysql_fetch_array一個布爾值來處理,這是不容忽視的。

你爲mysql_fetch_array設置一個布爾值的原因當然是你的查詢失敗了,你仍然可以將它傳遞給mysql_fetch_array而不檢查其返回的有效性。

無論如何,僅僅使用mysql_fetch_array和其他mysql_ *函數本身就是一個安全漏洞。你應該儘快轉移到PDO。

-1

試試這個:

SELECT b.*, c.* FROM boys b, girls c WHERE b.id=c.id