我如何加入2个表?

时间:2017-08-02 09:24:19

标签: php mysql sql join

我有两个表,我想连接在一起,第二个表的id与第一个表的id匹配,并作为行一起输出。

第一个表格是“男孩”,并且有一列“id”和“name” 第二个表是“女孩”,有一列“id”和“name”。

在PHP中输出时,如何将匹配的ID作为单行连接?我经历了一个关于连接的完整基础SQL教程,并且由于某种原因我无法绕过逻辑。有什么帮助吗?

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

警告:mysql_fetch_array()要求参数1为资源,第28行的C:\ xampp \ htdocs \ xampp \ main3.php中给出布尔值

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

您只提供了相当精简的查询。

根据你的错误,你给mysql_fetch_array一个布尔值来处理,这是非常的。

你给mysql_fetch_array一个布尔值的原因当然是你的查询失败了,你仍然把它传递给mysql_fetch_array而不检查它的返回的有效性。

无论如何,仅仅使用mysql_fetch_array和其他mysql_ *函数本身就是一个安全漏洞。你应该尽快转移到PDO。

答案 2 :(得分:-1)

试试这个:

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