从两个表中加入特定属性

时间:2015-11-21 04:09:31

标签: mysql sql join

我正在尝试创建数据库。在数据库中,我只需要将我的Software表中的特定属性连接到LicenceSchema表中的SiteKey。我在网上浏览了一下,无法在另一个表格中找到从表格到另一个表格的特定属性的任何内容。数据库类一直让我感到困惑,我只是通过阅读它来努力理解。所以我有这个LicenceSchema表 enter image description here

和本软件表 enter image description here

软件中列出了15种不同的软件,我需要使用其中的9种(Eclipse,HTML-Kit,Internet Explorer,Chrome,Firefox,JGrasp,Android Studio,Raptor,Linux)并使用LicenceSchema中的SiteKey加入它们

如果有人可以帮助我,我会很感激。

1 个答案:

答案 0 :(得分:0)

你想要

Eclipse,HTML-Kit,Internet Explorer,Chrome,Firefox,JGrasp,Android Studio,Raptor,Linux

所以我做了以下假设:一个表中的名称在列表中,并且连接就像命名列一样。

模式

create table LicenceSchema 
(   SchemaID int auto_increment primary key,
    SiteKey varchar(45) not null,
    CopyKey varchar(45) not null,
    StrictKey varchar(45) not null,
    Software_SoftwareID int not null,
    Software_College_CollegeID int not null
);

create table Software
(   SoftwareID int auto_increment primary key,
    Name varchar(45) not null,
    College_CollegeID int not null
);

查询

select s.*,l.*
from Software s
join LicenceSchema l
on l.Software_SoftwareID=s.SoftwareID
where s.Name in ('Eclipse', 'HTML-Kit', 'Internet Explorer', 'Chrome', 'Firefox', 'JGrasp', 'Android Studio', 'Raptor', 'Linux');

sl只是别名。选择*通常不是一个好主意。因此,将选择列表删除到您想要的列。如

select s.SoftwareID, s.Name, s.College_CollegeID ,l.SchemaID, l.SchemaID
...