2014-10-08 92 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