【问题标题】:How to query to get only show where on the other table has a relation id of a field如何查询以仅显示另一个表上具有字段的关系 id 的位置
【发布时间】:2014-04-27 01:53:18
【问题描述】:

如何查询以仅显示另一张表上具有字段关系 id 的位置。 示例我的解释表是:

表格内用户

+--------+------------+
|   id   |  username  |
+--------+------------+
|    1   |zuck        |
|    2   |renold      |
|    3   |arby        |
|        |            |

在表类中

+--------+------------+------------+
|   id   |  user_id   | class_name |
+--------+------------+------------+
|   1    |      1     | ABC        |
|   2    |      1     | EFG        |
|   3    |      1     | HIJ        |
|   4    |      2     | KLM        |
|   5    |      2     | NOP        |

我想得到如下结果:

Array
(
    [0] => Array
        (
            [id] => 1
            [username] => zuck
            [class] => Array
                (
                   [0] => array(
                          [id] => 1
                          [class_name] => ABC
                    )
                   [1] => array(
                          [id] => 2
                          [class_name] => EFG
                    )
                   [2] => array(
                          [id] => 3
                          [class_name] => HIJ
                    )
                )

        )
    [1] => Array
        (
            [id] => 2
            [username] => renold
            [class] => Array
                (
                   [0] => array(
                          [id] => 4
                          [class_name] => KLM
                    )
                   [1] => array(
                          [id] => 5
                          [class_name] => NOP
                    )
                )

        )
)

所以用户名 arby 不显示,因为他在表类中没有关系。在表类中没有 user_id 3。因此将只显示用户 zuckrenold。 我尝试查询左连接、外连接、内连接,但没有成功:-(

感谢您的帮助。

【问题讨论】:

  • 这就是你如何编写查询来获取数据的全部内容,我真的建议你先阅读我写的这个问答:stackoverflow.com/questions/12475850/… 很长,但你应该在阅读后位置更好。
  • 如果我知道我不问?你知道吗?
  • 你说过我尝试查询左连接、外连接、内连接,但没有成功。可以放在这里吗?

标签: php mysql


【解决方案1】:
SELECT Users.username,Class.class_name FROM Users INNER JOIN Class ON Users.id = Class.user_id;

【讨论】:

  • 你在说什么?!这将只返回两个表之间的公共字段!
猜你喜欢
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多