簡體   English   中英

MySQL查詢跨三個表?

[英]Mysql query across three tables?

我正在建立一個網站,允許用戶上傳他們制作的電視作品的海報。 如果其他用戶參與了制作,並且他們的姓名也列在海報的下方,則可以將其添加到海報中。

我在編寫mysql查詢時遇到問題,該查詢將允許我列出所有上載的海報,但也列出列出自己參與制作的所有用戶。 我做了這個SQL小提琴可能會有所幫助。 當前查詢顯示所有上載的海報,但不顯示將其添加到海報中的那些海報。 有任何想法嗎?

查詢

 SELECT tbl_uploads.file_name, tbl_users.user_id, tbl_users.user_name, tbl_collab.collab_userid, tbl_collab.collab_username
  FROM tbl_uploads

left join tbl_collab  on tbl_collab.file_name = tbl_uploads.file_name

 left join tbl_users on  tbl_uploads.user_id = tbl_users.user_id
group by tbl_uploads.file_name

桌子

CREATE TABLE IF NOT EXISTS `tbl_users` (
  `user_id` int(11) NOT NULL,
  `user_name` varchar(25) NOT NULL,
  `user_email` varchar(60) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

INSERT INTO `tbl_users` (`user_id`, `user_name`,`user_email`) VALUES
(2, 'julian', 'julian@email.com'),
(3, 'bob', 'bob@email.com'),
(4, 'sue', 'sue@email.com');

CREATE TABLE IF NOT EXISTS `tbl_uploads` (
  `id` int(10) NOT NULL,
  `file_name` varchar(100) NOT NULL,
   `user_id` int(11) NOT NULL
  ) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=latin1;

INSERT INTO `tbl_uploads` (`id`, `file_name`, `user_id`) VALUES 
('7', 'Julians Picture','2' ),
('13', 'Julians 2nd picture','2' ),
('14', 'Bobs Picture','3' ),
('15', 'Another Picture','3' );


CREATE TABLE IF NOT EXISTS `tbl_collab` (
  `id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `collab_username` varchar(255) NOT NULL,
  `file_name` varchar(255) NOT NULL,
  `collab_userid` varchar(255) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=latin1;

INSERT INTO `tbl_collab` (`id`,`file_name`,`collab_userid`, `user_id`,`collab_username`) VALUES ('1','Bobs Picture','4','4','Sue' ), ('2','Another Picture','3','3','Bob' )
,('3','Bobs Picture','2','2','Julian' );

這就是我想要的。 GROUP_CONCAT做到了

SELECT up.file_name, GROUP_CONCAT(c.collab_username)
FROM tbl_uploads up
LEFT JOIN tbl_users p ON up.user_id = p.user_id
LEFT JOIN tbl_collab c ON up.file_name = c.file_name
GROUP BY up.file_name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM