2014-10-08 89 views
2

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

我希望的行为是在单个html表中显示来自两个SQL表的数据。这很简单,除非表2中存储了更多信息。这是存储在每个表中的数据。

表1(trainingaidreturns)
-submit日期,ID,CUSTOMER_NAME,PRODUCT_NAME,_product_condition
表2
-submit日期,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"); 

我想我需要使用连接,但我不明白语法。如果任何人都可以指出我正确的方向,我会非常感激!

回答

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"); 

或相似。基本上,它使“占位符/空”值中的列不匹配桌到桌

编辑:

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

+0

你的第三个后更改了周期为一个逗号null并将更多数据移动到第一个选择的表格,并且它完美地工作!谢谢! – mn8809 2014-10-08 18:01:37

+0

啊,对不起 - 在我的回答中纠正 – Kritner 2014-10-08 18:03:35

+1

是的,你可以做的另一件事情,而不是切换两个查询周围(因为有时你会有一些在tbl1,而不是在tbl2和一些在tbl2,但不在tbl1)指定“null作为club_type”(作为示例) – Kritner 2014-10-08 18:15:21