Hello其他程序员,
更好地描述我的问题:
我有两张包含很多列的表格。他们有一些共同的颜色。
表1是具有客户ID,名字,姓氏,公司,街道,邮政编码,城市,类别等的客户表。
表2是预订表,也有名字,姓氏,公司,街道,邮政编码和城市。表2另外还有Coloums Room_ID,Date,Customer_ID等。 愚蠢的事情是:某些条目的Customer_ID为空。
现在我必须从Costumer表中获取预订房间的每个人的数据。
经过一些研究,经过阅读低谷http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins和How to do an INNER JOIN on multiple columns后,我认为我需要内部加入。
我的问题是How to do an INNER JOIN on multiple columns中推荐的方法并不适合我需要的方法,因为我想加入2个coloumns而不是2次同一个soloumn。
这是我目前的查询:
'SELECT tbl1.ID, tbl1.company, tbl1.title, tbl1.lastname, tbl1.fistname, tbl1.street, tbl1.city, tbl1.zipcode, tbl1.phone, tbl1.email, tbl1.category_ID, tbl1.Hotel_ID, tbl2.*
FROM customer AS tbl1
INNER JOIN booking AS tbl2
ON
WHERE '.$searchterms.'
GROUP BY tbl1.firstname, tbl1.lastname, tbl2.room, tbl2.date'
这里有一些关于连接方式的伪代码:
'Select needed cloumns
FROM customer AS tbl1
INNER JOIN booking AS tbl2
ON tbl1.firstname=tbl2.firstname AND tbl1.lastname=tbl2.lastname
WHERE '.$searchterms.'
GROUP BY tbl1.firstname, tbl1.lastname, tbl2.room, tbl2.date'
我需要的是提示,解释或链接,以帮助我提出解决方案,我会非常感激。 关于解释的问题,我有一些停电。我希望你能帮助我。
答案 0 :(得分:0)
'SELECT ID, company, title, lastname, fistname, street, city, zipcode, phone, email, category_ID, Hotel_ID
FROM customer AS tbl1
INNER JOIN booking AS tbl2
ON tbl1.id=tbl2.id
WHERE relevantcolumn='searchterms'
GROUP BY tbl1.firstname, tbl1.lastname, tbl2.room, tbl2.date'
答案 1 :(得分:-1)
很抱歉,如果我的答案有误,但我不确定我是否正确提出了问题,但无论如何,我会尽力回答这个问题。 连接目标,就是能够在两者中查询多个相关表的数据,我想你已经知道了,但关键是,你需要两个表之间的链接区域,这应该是唯一的,换句话说,第二个表(外键)中的customerId应该是第一个(主键)的客户ID,然后,在链接完成后,您可以使用条件优化搜索。 两个表之间的链接是用“ON”完成的,但你似乎把它误认为是“where”子句。 所以,很快就说出来,
SELECT tbl1.*, tbl2.*
FROM tbl1 INNER JOIN tbl2
ON tbl1.id=tbl2.Customer_ID
WHERE WhateverConditions
GROUP BY tbl1.firstname, tbl1.lastname, tbl2.room
我希望我回答你的需要。