【问题标题】:SELECT * FROM table1, table2, table3 [duplicate]SELECT * FROM table1,table2,table3 [重复]
【发布时间】:2017-11-15 07:00:45
【问题描述】:

我有问题... 在 table1 中我有一个 id,我必须比较 table2 中的 id,然后获取 table2 中的第二个 id 并将其与 table3 进行比较并得到一个数据。 示例

TABLE1
ID   NAME ECC...
1      Jhon
2      Frank

TABLE2
ID ID2 ECC..
1   4
2   8

TABLE3
ID NAME
4    Sea
8    Hello

如果我查找 id 1,结果一定是 Sea 如果我查找 id 2,结果必须是 Hello

谢谢!

【问题讨论】:

  • 您标记了 3 种不同风格的 SQL……是哪一种?答案是INNER JOIN...只要研究一下这个
  • 所以?加入他们,这并不难。
  • 这个问题引起了很多摩擦。另外,RDBMS 是未知的。 MySQL 和 MSSQL 是两种不同的动物;你应该相应地标记。这里也没有“php”。

标签: php mysql sql-server


【解决方案1】:

查询:

 SELECT a.name As Name FROM table3 a JOIN 
 (SELECT b.id2 AS id FROM table1 a JOIN table2 b ON a.id = b.id)b
 ON a.id = b.id where b.id = <your id number (1,2) Anything>

【讨论】:

  • 一种非常奇怪的方法来解决这个问题......
  • 这种方法比在一个查询中加入 3 个表要好得多。
  • 为什么更好?你正在加入 3 张桌子。
  • 你是说你的子查询比显式连接有好处?请解释一下...我相信我们都会有兴趣听听您的争论
  • 你的“观点”是错误的。
【解决方案2】:
select Table2.Id,Table3.Name from Table1 inner join Table2 on Table2.ID2 = Table3.Id

【讨论】:

  • 您在 Table3 上缺少一个联接。此查询将失败。
  • sorry select Table2.Id,Table3.Name from Table2 inner join Table3 on Table2.ID2 = Table3.Id 试试这个
【解决方案3】:

你应该使用 joins

您的查询将如下所示:

SELECT t3.name
FROM table3 t3
LEFT JOIN table2 t2 ON t3.id = t2.id2
LEFT JOIN table1 t1 ON t2.id2 = t1.id
WHERE t1.id = <your_number>

【讨论】:

  • 谢谢!!很实用的方法!!
【解决方案4】:
 SELECT Table3.NAME
   FROM Table1
  INNER JOIN Table2
 ON Table1.ID = Table2.ID
  INNER JOIN Table3
 ON Table3.ID = Table2.ID2
  WHERE Table1.ID = 1  -- Your Search here

【讨论】:

    【解决方案5】:

    应该是这样的:

    select table3.name as name3
    from table3
    where table3.ID = table2.ID2
    and table2.ID = table1.ID
    and table1.ID = <YOURNUMBERHERE>
    

    【讨论】:

    • 你在这里缺少一些连接......
    • @scsimon 使用 where-and 组合进行一些隐式连接,也可以使用 LEFT JOIN 等执行此操作,但它是从我的脑海中写出来的,所以没有连接 ;) 但你是对的, JOIN 是最好的方法
    • 不,这里没有隐式连接,table2table1from 子句中没有提及
    猜你喜欢
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多