webForumDet fria alternativet

join för att få fram grupp

Databaser & SQL

3 svar · 289 visningar · startad av Picklezz

Medlem sedan jan. 2002414 inlägg
Frågan#1

Har denna sql-fråga:

$polkforum_query = "SELECT * FROM `mod_polkforum_subtables` WHERE 1 AND `group_rights` = '$group_rights' AND `sid` = '$polkforum_tables_id'";

sen kom vi på det att vi skall tillåta användare att de skall få vara med i flera grupper...
så nu behöver jag hämta info från en tabell som heter proj_conn och innehåller uid där user id sparas och proj_id där grupp id sparas...så det jag behöver få fram är ett sätt att byta ut $group_rights i mitt exempel ovan till alla världen på proj_id som $user_id har...

alltså jag kan skicka med $user_id i sql-frågan också och sen behöver jag alltså visa alla poster där `group_rights` är lika med någon av de proj_id son proj_conn har för en uid...

Medlem sedan mars 20034 471 inlägg
#2

Det blir betydligt lättare att svara om du skriver upp hur dina tabeller ser ut (kolumnnamnen alltså).

Sedan tycker jag att två saker ser skumma ut i din fråga ovan:

`mod_polkforum_subtables` : Jag är visserligen inte helt insatt i alla MySQL's specialregler... men man brukar inte ange fnuttar runt ett tabellnamn. Är du säker på att man kan det i MySQL?

och

WHERE 1 AND ... : Vadå 1? :q På vilket sätt bidrar denna 1:a positivt till vad du gör?

Medlem sedan jan. 2002414 inlägg
#3

hehe...
ok...
min sql fråga är kopierad från PHPmyadmin och där kör dom fnuttar runt tabelnamn...
och 1 AND ... är också nått den lägger in och det fungerar utmärkt utan den men jag har inte orkat ta bort den bara...

fortfarande ingen som kan hjälpa mig?

mysql> describe mod_polkforum_subtables;
+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| id           | int(11)     |      | PRI | NULL    | auto_increment |
| sid          | int(11)     |      |     | 0       |                |
| name         | varchar(12) |      |     |         |                |
| display_name | text        |      |     |         |                |
| group_rights | varchar(12) |      |     |         |                |
+--------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
mysql> describe proj_conn;
+---------+--------+------+-----+---------+-------+
| Field   | Type   | Null | Key | Default | Extra |
+---------+--------+------+-----+---------+-------+
| id      | int(4) |      | PRI | 0       |       |
| uid     | int(4) |      |     | 0       |       |
| proj_id | int(4) |      |     | 0       |       |
+---------+--------+------+-----+---------+-------+
3 rows in set (0.00 sec)

det jag vill är alltså en fråga som tar ut infon från mod_polkforum_subtables när group_rights = proj_id för en användare uid...
varje uid kan ju ha flera proj_id

Medlem sedan dec. 200012 464 inlägg
#4
SELECT distinct pms.* 
FROM mod_polkforum_subtables pms join proj_conn 
on proj_id = group_rights 
where uid = '$polkforum_tables_id'

Flyttas från Mysql

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)