![](/img/trans.png)
[英]I am trying to generate an HTML table from a MySQL query. Here is the format of the table I am trying to generate from a MySQL query:
[英]I am trying to select data from 2 mysql tables into 1 query
我有2個mysql表,
第一個表保存有關文件的數據(包括文件夾ID)
第二張表保存有關文件夾的數據
我想為每個用戶選擇文件,並且我還需要包含文件夾名稱,該名稱保存在第二個表中。
所以我需要以某種方式加入這些表。
`file_id` int(20) NOT NULL AUTO_INCREMENT,
`FILE_NAME` varchar(200) NOT NULL,
`FILE_SIZE` varchar(200) NOT NULL,
`FILE_TYPE` varchar(200) NOT NULL,
`file_added` datetime DEFAULT NULL,
`share_type` varchar(200) NOT NULL,
`folder_id` int(20) NOT NULL,
`u_id` int(11) NOT NULL,
`folder_id` int(20) NOT NULL AUTO_INCREMENT,
`folder_name` varchar(200) NOT NULL,
`u_id` int(11) NOT NULL,
所以我需要能夠選擇:file_name(table1),file_size(table1),folder_name(table2)
我已經嘗試了很多事情,例如這個敵人的例子:
SELECT files.file_name, files.file_size, folders.folder_name
FROM files
JOIN folders ON files.u_id = folders.u_id
WHERE
files.u_id = ?
AND folders.u_id = ?
ORDER BY folders.folder_name, files.file_name
但這只是返回文件的多行,每個文件夾名末尾
我錯了多少?
兩個表之間的連接列通過folder_id
而不是u_id
(我認為這與用戶所有權有關)將它們u_id
。
查詢中的WHERE
子句可能是不必要的,這是嘗試使用隱式聯接的產物。 現在,完全刪除WHERE
子句並更正join ON
條件。 當使用舊式隱式FROM
(在FROM
子句中用逗號分隔的表)時,使用WHERE
條件將兩個表關聯起來,但這似乎不是您在這里所做的。
無論如何,顯式的JOIN
是現代的首選語法。
重新添加您需要將結果限制為過濾集的所有WHERE
子句。
SELECT
files.file_name,
files.file_size,
folders.folder_name
FROM
files
JOIN folders ON files.folder_id = folders.folder_id
ORDER BY
folders.folder_name,
files.file_name
由於它是一個非常直接的查詢。 我不會理會JOIN語法。 內部和外部接頭都在那兒。 但是在這里,文件始終有一個文件夾(我認為)。
SELECT
A.file_name, A.file_size, B.folder_name
FROM
files A, folders B
WHERE A.folder_id = B.folder_id
A和B是表別名
您應該使用folder_id字段聯接表。 試試這個變體:
SELECT files.file_name, files.file_size, folders.folder_name
FROM files
JOIN folders ON files.folder_id = folders.folder_id AND files.u_id = ? ORDER BY folders.folder_name, files.file_name
SELECT files.file_name, files.file_size, folders.folder_name
FROM files
INNER JOIN folders ON files.u_id = folders.u_id AND files.FOLDER_ID = folders.Folder_ID
ORDER BY folders.folder_name, files.file_name
Select files.*, folders.folder_name from files join folders on folders.folder_id = files.folder_id where files.u_id = USERID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.