我有两张桌子:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
别名表告诉我两个人是否实际上是同一个人。如果是这种情况,我希望为这些人提供唯一的ID。
电子。 G。:
function createEvent_ (namedValues) {
var options = { description: namedValues.Description[0],
location: namedValues.Location[0],
guests:"johan@inprint.co.za"};
var cEvent = CalendarApp.getCalendarsByName("TEST")[0].createEvent(
namedValues.Name[0],
new Date(namedValues.Starts + " " + namedValues.Stime),
new Date(namedValues.Ends + " " + namedValues.Etime),
options)
}
|-------------| |-------------|
| Person | | Alias |
|-------------| |-------------|
| person_id | | person_id_1 |
| person_name | | person_id_2 |
|-------------| |-------------|
现在我想创建一个视图,查询,你命名,它列出了所有person_ids和这些ID的唯一标识符。
|-------------------------|
| Person |
|-----------|-------------|
| person_id | person_name |
|-----------|-------------|
| 1 | Michail |
|-----------|-------------|
| 2 | Michail |
|-----------|-------------|
| 3 | Petja |
|-----------|-------------|
有人可以帮助我使用唯一ID视图吗?我完全无能为力: - (
谢谢inb4,
米凯尔
答案 0 :(得分:0)
我认为你已经有了一个可用于uniqe id的值。您只需强制person_id_1在同一个人身上是唯一的。确保你没有树状参考:
1 -> 2
2 -> 3
2 -> 4
这些树状连接通常很难在SQL中处理。
允许person_id_1
重命名为original_id
,将person_id_2
重命名为secondary_id
。如果您找到新连接,请说&#34; 5与3&#34;重复,查询表:
这样你就可以避免链,你想要的查询就像
一样简单select * from Alias
如同@a_horse_with_no_name建议,您也可以简单地使用RECURSIVE WITH
语句的查询:
WITH RECURSIVE conn(person_id_1, person_id_2) AS (
SELECT person_id_1, person_id_2 from Alias
UNION ALL
SELECT Alias.person_id_1, conn.person_id_2
FROM Alias, conn
WHERE Alias.person_id_2 = conn.person_id_1
),
leaf_nodes AS (
select distinct person_id_2 from Alias
)
select *
from conn
where conn.person_id_1 NOT IN (select person_id_2 from leaf_nodes)
order by person_id_1;