【问题标题】:How to get data from different tables into a singe table如何从不同的表中获取数据到一个表中
【发布时间】:2017-02-24 16:15:35
【问题描述】:

我正在做一个项目,我需要在其中显示一些更新,例如 facebook(第一个数字的最新更新,或者您可以以 LIFO 方式说)。我正在从不同的表中获取记录...我有 3 种用户查询:第一种是用户的公司项目,第二种是公司订单查询,第三种是供应商对公司订单查询的回复。

我的 SQL 代码是:

--user's Company Projects Table Query

 SELECT * FROM COMPANY_PROJECTS WHERE REF_COMPANYID=1003

-- Companies Order Queries Table Query

SELECT * FROM QUERYRECORDFROMUSER QR
  LEFT JOIN COMPANY_MASTER CM ON CM.COMPANY_ID = QR.QUERYFROM
  WHERE   cm.COMPANY_ID = 1003
  order by P_QUERYID desc

--Vendor's replies to company Order queriesTable Query 
  select  QUOTE_ID,NAME,P_QUERYID,ENQUIRYTITLE,REMARKS from QUOTE_FOR_ENQUIRY qe
  left join QUERYRECORDFROMUSER qr
  on qr.P_QUERYID = qe.REF_QUERYID
  left join VENDOR_REGISTRATION vr 
  on vr.VENDOR_REGID = qe.REF_VENDORID
  where REF_COMPANYID=1003

按 QUOTE_ID desc排序

我有来自 3 个查询的数据,但我无法根据创建日期对其进行排序.. 因为我将它绑定在前端的三个中继器中,它将显示表 1,然后是表 2,然后是表 3 记录,但我想根据创建日期显示,无论记录来自表 1、2 或 3。

感谢提前!!

【问题讨论】:

  • 按创建日期?用日期对它们进行排序时是否有任何错误?
  • 不,没有错误,但如果我要排序,那么它将首先显示表 1 排序记录,然后显示表 2 排序记录,最后显示表 3 排序记录。效果很好......但我想按照facebook时间线做:所有数据都会排序,无论是状态,有人分享一些视频,或任何应用程序请求......我想做的......
  • 那么我猜,你应该需要某种 facebook api。
  • 因此,您希望使用一个带有排序记录的排序记录,而不是三个不同的重复器,其中数据会在顶部显示最近的记录?

标签: sql asp.net sql-server join


【解决方案1】:

如果您的表看起来相同(即相同的数据类型等),您可以使用 UNION。然而,事实并非如此,这使得它有点棘手。一种解决方案是在缺失的列中添加 NULL 值。因此,例如,如果您有以下各列的表格:

表 A:a、b、c

表 B:a'、b、d、e

表 C:a''、b、f、g、h

a、a' 和 a'' 列是您的 ID,它们是整数,b 是您的创建日期,您可以执行以下操作:

SELECT a, b, c, NULL, NULL, NULL, NULL, NULL FROM A
UNION  a', b, NULL, d, e, NULL, NULL, NULL FROM B
UNION  a'', b, NULL, NULL, NULL, f, g, h FROM C
ORDER BY b DESC

【讨论】:

  • 你实际上可以添加任何你想要的东西而不是 NULL,只要它是正确的数据类型,例如0, 'N/A' 或 ''
猜你喜欢
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 2017-08-19
  • 2017-01-14
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
  • 1970-01-01
相关资源
最近更新 更多