如何从不同的表中选择数据?
Posted
技术标签:
【中文标题】如何从不同的表中选择数据?【英文标题】:How can I select data from different tables? 【发布时间】:2016-08-30 03:58:35 【问题描述】:我有这些表:
ARTICLE、ARTICLE_has_tag、TAG、POST_ARTICLE 和 USER。
我想从 ARTICLE 中获取所有信息,然后是一个标签的名称(即使他们有多个标签)、cmets 的数量和制作它的用户。可能吗? ¿我应该做多个查询吗?
ARTICLE
`ID_ARTICLE` int(11) NOT NULL AUTO_INCREMENT,
`TITLE_ARTICLE` varchar(45) NOT NULL,
`SUBTITLE_ARTICLE` varchar(45) NOT NULL,
`REFEREE_ARTICLE` text,
`LINEUP_ARTICLE` text,
`LINEUP_OPPONENT_ARTICLE` text,
`CARD_ARTICLE` text,
`CARD_OPPONENT_ARTICLE` text,
`CHANGE_ARTICLE` text,
`CHANGE_OPPONENT_ARTICLE` text,
`GOALS_ARTICLE` text,
`CONTENT_ARTICLE` text NOT NULL,
`CREATED_ARTICLE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`IMAGE_ARTICLE` text,
`MATCH_ID` int(11) NOT NULL,
`USER_ID` int(11) NOT NULL,
PRIMARY KEY (`ID_ARTICLE`),
ARTICLE_has_TAG
`ARTICLE_ID` int(11) NOT NULL,
`TAG_ID` int(11) NOT NULL,
POST_ARTICLE
`ID_POST_ARTICLE` int(11) NOT NULL AUTO_INCREMENT,
`CONTENT_POST_ARTICLE` text NOT NULL,
`CREATED_POST_ARTICLE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`USER_ID` int(11) NOT NULL,
`ARTICLE_ID` int(11) NOT NULL,
TAG
`ID_TAG` int(11) NOT NULL AUTO_INCREMENT,
`NAME_TAG` text NOT NULL,
USER
`ID_USER` int(11) NOT NULL AUTO_INCREMENT,
`USERNAME_USER` text NOT NULL,
`FIRSTNAME_USER` varchar(45) NOT NULL,
`LASTNAME_USER` varchar(45) NOT NULL,
`EMAIL_USER` text NOT NULL,
`PASSWORD_USER` text NOT NULL,
`TYPE_USER` int(1) NOT NULL DEFAULT '1',
`IMAGE_USER` varchar(100) DEFAULT '245x342.jpg',
`KEY_USER` text NOT NULL,
`ACTIVATED_USER` int(1) DEFAULT '0',
`CREATED_USER` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
【问题讨论】:
是的,有可能,您可以尝试学习 sql,编写查询来执行此操作,以防出现问题 - 在此处发布问题 请下次使用谷歌。当我复制您的确切主题标题时,我会得到大量结果来解释您需要什么:google.at/… 在我看来(根据您使用的标签)您知道您正在寻找的答案包括SELECT
关键字和 JOIN
。自己试一试
【参考方案1】:
您可以通过 JOIN 或子查询来完成此操作
Sub-query documentation
JOIN documentation
【讨论】:
以上是关于如何从不同的表中选择数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Postgres 中使用 CASE 或 IF 语句从不同的表中进行选择?
Laravel Raw 语句我可以根据列数据是不是等于另一个表从不同的表中进行选择
如何使用 Nhibernate 从连接两个具有所有 id 的表中选择只有一个不同列的多个列是 UNIQUEIDENTIFIER