如何从不同的表中选择数据?

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

【讨论】:

以上是关于如何从不同的表中选择数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用组合框根据另一个组合框的值从不同的表中选择数据

SQL,如何从不同的表中选择属性?

使用 case 语句从两个不同的表中选择数据

如何在 Postgres 中使用 CASE 或 IF 语句从不同的表中进行选择?

Laravel Raw 语句我可以根据列数据是不是等于另一个表从不同的表中进行选择

如何使用 Nhibernate 从连接两个具有所有 id 的表中选择只有一个不同列的多个列是 UNIQUEIDENTIFIER