【问题标题】:Trying to join two MySQL queries试图加入两个 MySQL 查询
【发布时间】:2015-01-27 09:59:13
【问题描述】:

我希望这两个不同的表结果在一个查询中。

$result=mysqli_query("SELECT * FROM table_1 WHERE keyskill LIKE'php%'");
$result=mysqli_query("SELECT * FROM table_2 WHERE parentaddress LIKE'chennai%'");

谁能帮帮我?

这是表结构...

表 1:

  ID | F. Name | L.Name | Gender | Parentaddress  
___________________________________________________
 12  | Peter   | Son    |  Male  |  Chennai
 13  | Johny   | Depp   |  Male  |  Coimbatore

表 2:

 S.No|    Name | Title   | Gender | Keyskill  
 ___________________________________________________
 13  | Johny   | Student |  Male  |  PHP
 12  | Peter   | Student |  Male  |  JAVA

【问题讨论】:

  • 这些有不同的列?
  • 请提供表格结构
  • 两个表的字段和名称是否相同?
  • 它们之间至少应该有一个公共列
  • 贴出表结构和一些示例数据

标签: php mysql database


【解决方案1】:

您的数据库不应该是这样的吗? (只是猜测!)

表 1(人):

  ID | F. Name | L.Name | Gender | Parentaddress  | Title  
__________________________________________________________
 12  | Peter   | Son    |  Male  |  Chennai       | Student
 13  | Johny   | Depp   |  Male  |  Coimbatore    | Student

表 2(技能):

 S.No| ID | Keyskill  
 ___________________________________________________
 70  | 13 | PHP
 71  | 13 | Whatever Language
 72  | 12 | JAVA

表 1 定义了您要为其保存技能的人员,表 2 仅通过 iD 字段引用这些人员。

【讨论】:

    【解决方案2】:

    使用 UNION :

    select a.`ID` as ID, a.`F.Name` as first_name, a.`L.Name` as last_name, b.`Title` as tittle, a.`Gender` as gender, a.`Parentaddress` as parent_address, b.keyskill as keyskill from table_1 a inner join table_2 b on a.id = b.`S.No` where b.keyskill LIKE 'php%'
    union all
    select a.`S.No` as ID, b.`F.Name` as first_name, b.`L.Name` as last_name, a.`Title` as tittle, a.`Gender` as gender, b.`Parentaddress` as parent_address, a.`Keyskill` as keyskill from table_2 a inner join table_1 b where b.parentaddress LIKE 'chennai%'
    

    或者通过 ID 加入:

    select * from table_1 a left outer join table_2 b on a.id = b.`S.No` where b.keyskill LIKE 'php%' and a.parentaddress LIKE 'chennai%'
    

    【讨论】:

    • 不,我正在使用keyskill,父地址是搜索值,但这两个字段是不同的表,如果keyskil作为php它返回相应的值,如果我选择父地址作为chennai它返回相应的值。
    • 如果我使用keyskill作为php,使用父地址作为coimbotore,它会同时返回对应的值
    • 没什么特别的,只要加上条件即可。先搞清楚概念。阅读我的更新答案。
    猜你喜欢
    • 2013-05-18
    • 2014-02-13
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多