我有兩個關係表(我使用外鍵的理由是因爲KV是嵌套在我的JSON數據反對):使用左外連接,防止路口柱出現兩次
CREATE TABLE analytics(
e VARCHAR(50),
t VARCHAR(50),
kv_id INT AUTO_INCREMENT
);
CREATE TABLE kv(
kv_id INT AUTO_INCREMENT,
url VARCHAR(100),
name VARCHAR(100),
referrer VARCHAR(100),
id VARCHAR(100),
sessionID VARCHAR(100),
quote BIGINT(20),
category VARCHAR(50),
hitCallback VARCHAR(50),
eventType VARCHAR(50)
)
我目前正在使用:
SELECT * FROM
Analytics
LEFT OUTER JOIN
Kv
ON
Analytics.kv_Id = KV.kv_id
我試圖讓kv_id列只出現一次,但最好不要更改架構。如果它出現兩次,我將不得不使用JDBC在我的ResultSet對象中解析它。如果我可以擺脫它的查詢會簡單得多。我試着用期望的列替換asterik來指定我想要的列名,但它返回語法錯誤。我已經嘗試了兩個連續的選擇查詢。我也嘗試過一個聯合,但它返回列計數不匹配(我想union是添加行而不是列)。我希望這個問題的答案能夠讓我在Java方面臃腫,並且可能會指出我的模式設計中可能出現的任何問題。如果這是不好的設計,請指出,這是我第一次在數據庫和Web應用程序之間傳輸JSON數據。
編輯:我使用的supports「爲IBM DB2,Apache Derby的,HSQLDB,MS SQL服務器,MySQL和Oracle和PostgreSQL的兼容模式」
只需在'SELECT'中列出所需的列,而不是使用'SELECT *' – Lamak
謝謝!這更詳細地通過@ Isaiah3015來解釋 –
這非常基本,您需要閱讀已發佈的SQL介紹。 (許多教科書免費在線。) – philipxy