2017-08-02 81 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