显示两个SQL表中的数据语法说明

时间:2014-10-08 17:51:07

标签: php mysql sql join union

我是SQL的新手,并试图更好地理解从两个表中显示数据的语法。我一直在阅读很多教程(http://databases.about.com/od/sql/l/aajoins2.htm),但我对这个主题仍然有点模糊。

我希望的行为是在一个html表中显示来自两个SQL表的数据。这很简单,除了表2中还有一些信息存储在其中。以下是存储在每个表中的数据。

表1(trainingaidreturns)
- 提交日期,ID,customer_name,product_name,_product_condition
表2
- 提交日期,ID,customer_name,product_name,_product_condition,club_type,club_flex,club_loft,club_hand

我已成功使用联合来显示来自两个表的匹配行数据,但我还需要显示第二个表中的club_type,club_flex,club_loft和club_hand。当我插入时,没有任何显示。

$result = mysqli_query($con,"SELECT SubmitDate, ID, customer_name, product_name, product_condition
FROM trainingaidreturns
UNION 
SELECT SubmitDate, ID, customer_name, product_name, product_condition
FROM clubreturns");

这就是我基本上需要代码来做的事情。

$result = mysqli_query($con,"SELECT SubmitDate, ID, customer_name, product_name, product_condition
FROM trainingaidreturns
UNION 
SELECT SubmitDate, ID, customer_name, product_name, product_condition, club_type, club_hand, club_flex, club_loft
FROM clubreturns");

我想我需要使用联接,但我不理解语法。如果有人能指出我正确的方向,我会非常感激!

1 个答案:

答案 0 :(得分:2)

如果要在查询编辑器中运行相同的查询,则会收到一些错误消息,其中包含列的列和数据类型必须在您的联合的两端匹配"

要解决这个问题,你可以改变:

$result = mysqli_query($con,"SELECT SubmitDate, ID, customer_name, product_name, product_condition
FROM trainingaidreturns
UNION 
SELECT SubmitDate, ID, customer_name, product_name, product_condition, club_type, club_hand, club_flex, club_loft
FROM clubreturns");

为:

$result = mysqli_query($con, "SELECT SubmitDate, ID, customer_name, product_name, product_condition, club_type, club_hand, club_flex, club_loft
FROM clubreturns
UNION
SELECT SubmitDate, ID, customer_name, product_name, product_condition, null, null, null, null
FROM trainingaidreturns");

或类似的。基本上它使"占位符/ null"不匹配表与表

的列中的值

编辑:

这是展示这一概念的小提琴:http://sqlfiddle.com/#!2/4a152/1