使用LIKE'%'

时间:2017-09-05 15:50:22

标签: sql sql-server create-table

我已经在技术回合中完成了以下任务。

  1. 编写SQL DDL以创建一个名为Job的新表,该表将人与多对多关系中的公司联系起来。
  2. 提供了一个名为@searchValue的SQL参数,创建一个SQL查询,该查询将返回为名称或描述包含搜索词的公司工作的所有人。
  3. enter image description here

    我研究了https://social.technet.microsoft.com/wiki/contents/articles/19854.tutorial-many-to-many-dimension-example-for-sql-server-analysis-services.aspx并检查过像How to make SQL many-to-many same-type relationship table这样的类似问题,但仍然无法弄明白。

    我尝试解决以下问题:

    1)我创建了Job表,但想知道它应该包含job_id作为主键还是应该在合并person_idcompany_id之后创建主键?

    create table Job
    (
      person_id int,
      company_id int,
      CONSTRAINT person_cat_pk PRIMARY KEY (person_id, company_id),
      CONSTRAINT FK_ person
          FOREIGN KEY (person_id) REFERENCES person (person_id),
      CONSTRAINT FK_company
          FOREIGN KEY (company_id) REFERENCES category (company_id)
    );
    

    2)我使用了两个INNER JOIN,在所有情况下都是正确的吗?我们能以简单的方式解决它吗?它有助于我理解未来的查询。

    SELECT a.firstName, a.lastName, a.dateOfBirth 
    FROM Person a INNER JOIN Job b ON a.id = b.person_id 
    INNER JOIN Company c ON b.company_id = c.id 
    WHERE ((c.name LIKE '%' + @searchValue + '%') 
    OR (c.description  LIKE '%' + @searchValue + '%'))
    

0 个答案:

没有答案