首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL回馈了许多值

问MySQL回馈了许多值
EN

Stack Overflow用户
提问于 2019-03-01 03:05:34
回答 2查看 29关注 0票数 2

我有一个MariaDB数据库。

代码语言:javascript
复制
    #Create table room
create table if not exists room
(
  pk_roomNumber   INTEGER PRIMARY KEY NOT NULL,
  roomdescription VARCHAR(50),
  netmask         VARCHAR(15),
  subnetmask      VARCHAR(15)
);

#Create table client
CREATE TABLE IF NOT EXISTS client
(
  pk_macaddr       VARCHAR(17) PRIMARY KEY NOT NULL,
  ipadress         VARCHAR(15),
  hostname         VARCHAR(50),
  fk_pk_roomnumber INTEGER,
  last_seen        DATE,
  is_online        BOOLEAN
);


ALTER table client
  ADD CONSTRAINT pk_fk_roomnumber
    FOREIGN KEY fk_pk_roomnumber (fk_pk_roomnumber)
      REFERENCES room (pk_roomNumber);

我正在找131房间里的每一个客户。

我目前正在尝试使用此查询

代码语言:javascript
复制
select hostname, pk_macaddr, ipadress, roomdescription, fk_pk_roomnumber from client,room
WHERE fk_pk_roomnumber AND fk_pk_roomnumber = '131';

我的数据库中有160个客户端,我将它们分成4个房间,每个房间40个客户端,但当我开始查询时,我得到了所有160个客户端。我的查询哪里错了?

你好,卢卡斯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-01 03:11:49

您有一个错误的联接条件..(在您的代码中,您没有连接这两个表)

代码语言:javascript
复制
select c.hostname, c.pk_macaddr, c.ipadress, r.roomdescription, r.fk_pk_roomnumber 
from client c
INNER JOIN room r ON c.fk_pk_roomnumber =  r.pk_roomnumber
  and r.pk_roomnumber  = '131';

并且你应该使用explicti join sintax (而不是ol和explicti隐式join sintax基于where)

票数 0
EN

Stack Overflow用户

发布于 2019-03-01 03:11:56

你想“加入”客户和房间表:

代码语言:javascript
复制
select client.hostname, client.pk_macaddr, client.ipadress, room.roomdescription, client.fk_pk_roomnumber 
from client
inner join room
on client.fk_pk_roomnumber = room.pk_roomnumber
where room.pk_roomnumber = '131';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54932589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档