[英]How to use a $result variable with table object in SQL query using mySQLi
[英]Use a Table as a Variable in SQL
我有两个桌子教室和一台计算机,目前桌子教室中的计算机是变量
CREATE TABLE classroom_tbl
(
room_id INT AUTO_INCREMENT PRIMARY KEY,
teacher_name VARCHAR(30),
subject_name VARCHAR(30),
computer VARCHAR(30)
);
我想做到这一点,因此可变计算机代替教室表中的VARCHAR,而将其称为计算机表
CREATE TABLE computer_tbl
(
computer_id INT AUTO_INCREMENT PRIMARY KEY,
computer_type VARCHAR(30),
computer_status INT
);
有什么办法吗? 我尝试了UNION和INNER JOIN,但总是收到一个错误消息,指出我的列大小不同。 这是有道理的,因为教室比计算机大。 谢谢你提供的所有帮助!
我相信您是SQL的新手,并且具有一定的编程经验。 SQL没有像C / C ++ / java这样的编程语言中的变量。 相反,SQL表通过诸如外键关系之类的关系相互关联。 您需要阅读SQL教程以了解有关关系的更多信息,这是其中之一的链接:
http://www.functionx.com/sql/Lesson11.htm
为了使用JOINS,您需要在两个表之间具有主-外键关系。 您可能需要像这样创建表:
CREATE TABLE classroom_tbl
(
room_id INT AUTO_INCREMENT PRIMARY KEY,
teacher_name VARCHAR(30),
subject_name VARCHAR(30),
computer_id INT REFERENCES computer_tbl(computer_id)
);
由于给定的教室中可以有许多计算机,但是给定的计算机一次只能位于一个教室中,因此将教室作为外键放在计算机桌上更有意义,反之亦然:
CREATE TABLE classroom_tbl
(
room_id INT AUTO_INCREMENT PRIMARY KEY,
teacher_name VARCHAR(30),
subject_name VARCHAR(30)
);
CREATE TABLE computer_tbl
(
computer_id INT AUTO_INCREMENT PRIMARY KEY,
computer_type VARCHAR(30),
computer_status INT,
room_id INT
);
要查看每个房间中有哪些计算机,请尝试以下查询:
select r.room_id, r.teacher_name, r.subject_name,
c.computer_id, c.computer_type, c.computer_status
from classroom_tbl r
left join computer_tbl c on r.room_id = c.room_id
如果有人遇到这个问题,我想做的事是不可能的。 您只能引用其他表中的其他列或创建前键。 不幸的是,您不能引用整个表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.