Php 我应该在这里使用哪个SQL连接?
我有两个SQL表,一个用于用户表,另一个用于用户的所有信息。年龄、性别等 用户表:Php 我应该在这里使用哪个SQL连接?,php,sql,join,Php,Sql,Join,我有两个SQL表,一个用于用户表,另一个用于用户的所有信息。年龄、性别等 用户表: id, username, mail, etc 第二桌 id, user_id, type_id, content 用户表内容: 1, knife, knife@something.com, etc ... 第二张表: 1, 1, 38 (age) 1, 3, Male 我想得到的用户谁是20-40岁之间,谁是男性。 我现在在这里: SELECT * FROM felh
id, username, mail, etc
第二桌
id, user_id, type_id, content
用户表内容:
1, knife, knife@something.com, etc ...
第二张表:
1, 1, 38 (age)
1, 3, Male
我想得到的用户谁是20-40岁之间,谁是男性。
我现在在这里:
SELECT
*
FROM
felhasznalok_kieg_adat
JOIN felhasznalok
ON felhasznalok_kieg_adat.user_id = felhasznalok.id
WHERE
felhasznalok_kieg_adat.kieg_id = "22"
and felhasznalok_kieg_adat.tartalom < 21
and felhasznalok_kieg_adat.tartalom < 40
它向我展示了21岁到40岁之间的结果,但是我如何才能添加男性或女性的东西呢?选择一些值,比如男性的“M”和女性的“F”。然后:
SELECT *
FROM felhasznalok_kieg_adat
JOIN felhasznalok ON felhasznalok_kieg_adat.user_id = felhasznalok.id
WHERE ((felhasznalok_kieg_adat.kieg_id = "22"
AND felhasznalok_kieg_adat.tartalom < 21
AND felhasznalok_kieg_adat.tartalom < 40))
AND felhasznalok_kieg_adat.gender = 'male'
ALTER TABLE felhasznalok_kieg_adat ADD COLUMN sex CHAR(1);
您选择的仅适用于男性的选项如下所示:
SELECT *
FROM felhasznalok_kieg_adat
JOIN felhasznalok
ON felhasznalok_kieg_adat.user_id = felhasznalok.id
WHERE ((felhasznalok_kieg_adat.kieg_id = "22" and felhasznalok_kieg_adat.tartalom < 21 and felhasznalok_kieg_adat.tartalom < 40)) and (sex = 'M')
您必须加入一次年龄筛选,第二次性别筛选
SELECT User.*
FROM User
JOIN UserContent ageFilter
ON ageFilter.user_id = User.id
AND ageFilter.type_id = 1 -- use type_id for joining
JOIN UserContent genderFilter
ON genderFilter.user_id = User.id
AND genderFilter.type_id = 3
WHERE (ageFilter.content < 21 AND ageFilter.content < 40) -- what type is content? You have to make some sort of conversion here!
AND (genderFilter.content = 'Male')
我已将表和列的名称替换为您在问题中描述的名称。
在join中添加type_id,这样会更易于阅读。如果可能,如果没有性别列,则必须将其添加到表中
你可以用
在您的join中,而不是>和<,您可以作为
SELECT *
FROM table1
JOIN table2
ON table1.user_id = table2.id
WHERE ((table1.kieg_id = "22" and table1.tartalom BETWEEN 21 AND 22))
AND table1.gender = 'male'
您的第二个表输出非常奇怪,同一列如何同时包含性别和年龄信息?是的,正确@BojanKovacevic是您的两个值都插入到同一列中?啊哈,现在我看到类型不同,定义了内容的含义。但是如果你有列“性别和年龄”会不会更好?@BojanKovacevic-我认为他缺少一个列,类型id指的是内容类型你应该放一个键解释哪些表是什么,以帮助OPI使用他在问题中给出的名称。我首先看到了你的解决方案。我试过这个。它实际上正在工作,但是我可以用id列上的用户id来获取它吗。它给了我所有的链接,但是对于id,它给我的不是用户表中的id,而是一些其他行id。我不需要其他表id。是的,我可以。。。非常感谢大家。要仅从用户中选择值,请编写Select user.*。。。看,editI是这样做的,因为我制作了用户表dynmic。我使注册表单和用户表单成为动态的。我可以用这个解决方案更改easyli的形式。