要使用哪个 sql 查询? [关闭]

Posted

技术标签:

【中文标题】要使用哪个 sql 查询? [关闭]【英文标题】:Which sql query to be used? [closed] 【发布时间】:2016-04-09 08:09:21 【问题描述】:

我说过 n 个不同的表,每个表有 3 个属性

ie Table1: name|price|id
   Table2: name|price|id
   .
   .
   Tablen: name|price|id

请告诉我应该在我的 php 代码中使用什么 sql 查询,以便我可以从上述所有具有相同 ID 的表中检索所有名称和价格,例如 id=1。

【问题讨论】:

投票应该被关闭.. 请告诉我应该使用什么 sql 查询 - 我们不是来做你的功课 对所有表使用UNION ALL从所有表中获取数据where id = 1 我认为这不是SQL Query的问题,是数据库结构的问题。如果您不更改结构,请尝试使用@SaharshShah 表示的UNION ALL 到目前为止你有什么? How to Ask 欢迎来到 Stack Overflow!发布的所有内容都是程序说明。但是,我们需要您ask a question。我们无法确定您想从我们这里得到什么。请edit您的帖子包含一个我们可以回答的有效问题。提醒:请确保您知道what is on-topic here,请我们为您编写程序,建议是题外话。 【参考方案1】:

如果您的列数相同,您可以使用 SELECTUNION

例子:

SELECT * FROM Table1
UNION
SELECT * FROM Table2
UNION
SELECT * FROM Tablen

如果你不想在你的结果中所有记录使用 UNION ALL 如果你只想要差异使用 UNION ALL

在您的情况下,这是适合您的解决方案:

SELECT * FROM
(

  select * from table1
  UNION
  select * from table2
  UNION
  select * from table3

) AS Results
WHERE Results.ID = 1

【讨论】:

union 看起来不错,但是如果我只希望表中的那些行具有相同的 id 属性值怎么办?即我想要上表中所有具有相同 id 的行。 尝试用 UNION ALL 替换 UNION 例如。表一:姓名=A | ID:1,名称 = B | ID: 2 ,表 2:name=C |ID:1,name=D|ID:2 并且对于输出,我想要所有名称,即(A 和 C)具有相同的 id =1。 解决你的问题我的例子? 是的,非常感谢! :)

以上是关于要使用哪个 sql 查询? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

这两个sql查询语句哪个更快?

Navicat保存查询和查询文件放在哪个位置

SQL查询

如何编写SQL查询以通过频道和节目播放以下数据? [关闭]

一秒钟内的查询数量非常多。 [关闭]

自动化 SQL 查询 [关闭]