我有一个问题,向你们展示,我把它分解成一个小例子。 为了扩大现实,我们假设客户的生日每天都在变化。 有2个表,一个表包含客户,另一个表包含星号。
(日期格式:DD-MM-YYYY, dateofbirth数据类型为varchar )
我想匹配两个表的日期,以创建包含客户和相应星座的视图,例如:
我尝试使用通配符,连接等,但我没有得到它。我慢慢失去了这种普遍可能的信念,但在放弃之前,我问你们。希望你能帮帮我。
答案 0 :(得分:1)
好吧......我会给你一个SELECT语句,这应该足够了。
你需要:
这要求你将他们的生日(或开始)投射到" date"键入,然后提取月份。完成此操作后,您可以根据month = signid(或签署月份或其他)加入表格。
Up to date SQL Fiddle to cast from varchar to date
OldSQLFiddle:--ignore--
请注意,我只为每张桌子使用了一个条目,以使我的生活更轻松并证明这一概念。
我的加入声明在这里:
SELECT c.last_name, c.first_name, c.birth_date, s.sign_name
FROM customers c
JOIN signs s ON s.sign_id =
date_part('month', to_date(c.birth_date,'DD.MM.YYYY'))
如果有任何不清楚的地方,请告诉我。
此外:this link可以帮助您完成所需的任何日期格式设置。
答案 1 :(得分:0)
所以我想通了: 我扩展了表格“Starsigns”:
date | starsign |
-----------+-----------+
01.01.1956 | capricorn |
-----------+-----------+
02.01.1956 | capricorn |
-----------+-----------+
03.01.1956 | capricorn |
-----------+-----------+
" " " " " " " " " " " "
-----------+-----------+
15.12.1988 |Sagittarius|
-----------+-----------+
然后我简单地加入了两个表:
SELECT * FROM Customers
Join Starsigns on Starsigns.date = Customers.dateofbirth