我要麼變老,要麼我需要寫的查詢變得越來越複雜。以下查詢將獲得與該用戶關聯的所有tasks
。合併兩個SELECT查詢
"SELECT `date`
FROM `tasks`
WHERE `user_id`= 1;"
的tasks
表是(id
,date
,user_id
,url_id
);
現在,我需要以及記載,url_id
聯營公司與用戶線槽
`urls` table (`id`, `user_id`)
的獨立查詢應該是這樣的:
"SELECT `t1`.`data`
FROM `tasks` `t1`
JOIN `urls` `u1` ON `u1`.`id` = `t1`.`url_id`
WHERE `u1`.user_id` = 1;"
雖然,是否有可能合併這兩個查詢放入單個查詢中?我的邏輯說它應該是,雖然我不知道如何去做實際的JOIN。
在上次查詢中,你的意思是「數據」或「日期」嗎?另外,如果您沒有從URL表中選擇任何數據,您是否真的需要加入它? (答案可能是「是的,以確保有該用戶標識的URL條目」。)以及爲什麼有這麼多的反標記;它與MS SQL Server和方括號一樣糟糕! –
我在路上寫了查詢,所以我自然留下了一些錯誤。你是對的,它必須是'日期'而不是'數據'。我通常會忽略關於「back-ticks」的評論,儘管你有很高的聲譽,所以我有點好奇你爲什麼說「它和MS SQL Server和方括號一樣糟糕」?反引號的目的本身就是爲了確保MySQL服務器能夠快速識別表名和列名,並避免在使用保留關鍵字(例如嵌套集合中的「left」或「right」)時發生混淆。 – Gajus
MS SQL Server用戶對方括號做出了相同的說明。它看起來很醜,而且完全沒有標準。沒有其他數據庫管理系統支持SQL標準所稱的「分隔標識符」的反標記或方括號,標準中所使用的標識符是用雙引號括起來的;單引號是爲字符串保留的。不同的DBMS對於可以使用關鍵字的地方有不同的規則。我使用的主要功能是在許多地方使用關鍵字作爲標識符。避免使用關鍵字作爲標識符最好避免使用引號。 –