我是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");
我想我需要使用联接,但我不理解语法。如果有人能指出我正确的方向,我会非常感激!
答案 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